ブロックレベル関数ES6 より前では厳密モードは禁止される必要があります。 ES6 以降で利用可能になった関数のスコープは、関数が宣言されているブロックです。非厳密モードではこれを無効にする必要があります。 真の場合{ function test() { //ブロックレベル関数 console.log(1); } } テスト(); オブジェクトのプロトタイプを直接変更するブラウザは、インスタンスを呼び出す前にプロトタイプを最適化し、オブジェクトのメソッドのメモリ位置を事前に計画します。したがって、プロトタイプを直接変更することはできません。以下の2つの方法は禁止されるべきである Object.setPrototypeOfを使用してプロトタイプを変更します 関数a(){} a.プロトタイプ = { a_prop: "値" }; 関数b(){} var プロトコル = { b_prop: "b 値" }; オブジェクト.setPrototypeOf() プロト、プロトタイプ ); b.prototype = プロトタイプ; var test = new b; console.log(test.a_prop); // 値 console.log(test.b_prop); // b 値 オブジェクトの__proto__属性を直接変更する 関数a(){} a.プロトタイプ = { a_prop: "値" }; 関数b(){} var プロトコル = { b_prop: "b 値", __proto__: a.prototype //オブジェクト b の __prototype__ 属性を直接変更します}; b.prototype = プロトタイプ; var test = new b; console.log(test.a_prop); // 値 console.log(test.b_prop); // b 値 との使用法: var a = { p1: 1, p2: 2 } (a) {と 3 は 0 です。 } コンソールログ(a.p1); with の使用は禁止されるべきです。例: 関数a(arg1, arg2) { (arg2){で console.log(arg1); // 最初のパラメータを出力するか、arg2 の arg1 プロパティを出力するかを判断できません} } var arg2 = {arg1:1} a("引数1", 引数2) 呼び出された人arguments.callee は現在実行中の関数を表します。 関数a(arg1) { (引数1>1)の場合{ arg1 * arguments.callee(arg1 - 1) を返します。 } それ以外 { 1 を返します。 } } コンソールログ(a(3)); // 6 関数が自分自身を呼び出す必要がある場合は、代わりに arguments.callee() を使用し、関数を名前で直接呼び出します。 関数a(arg1) { (引数1>1)の場合{ return arg1 * a(arg1 - 1); // 関数名で直接呼び出す} それ以外 { 1 を返します。 } } コンソールログ(a(3)); // 6 発信者caller は関数の呼び出し元を表すため、使用しないでください。この機能は標準ではありません。 関数a() { console.log(a.caller); // 関数 b() { a(); } } 関数b() { (); } 関数b(); 評価eval() は渡された文字列パラメータを JavaScript コードとして実行できます。 eval("var a = 1, b = 2; console.log(a+b)"); // 3 eval の使用は禁止されています。ブラウザは JavaScript を最適化するため、eval は通常の JavaScript 実行よりも遅くなります。 eval メソッドも、呼び出し元と同じ権限でコードを実行し、eval() が呼び出されたときにそのスコープが公開されるため、安全ではありません。代わりに次の関数を使用する必要があります: var a = 新しい関数("a", "b", "console.log(a+b)") (1,2); // 3 以上がネイティブJSで禁止すべき記述方法の詳しい内容です。ネイティブJSで禁止すべき記述方法についての詳細は、123WORDPRESS.COM内の他の関連記事にも注目してください! 以下もご興味があるかもしれません:
|
<<: mysql エラー 1045 (28000) - ユーザーへのアクセスが拒否される問題を解決する方法
>>: Nginx 構成 クロスドメイン リクエスト Access-Control-Allow-Origin * 詳細な説明
1. ffmpeg がビデオ ファイルをプッシュする場合、オーディオとビデオのエンコード形式は H2...
序文レイアウトの点では、Gobang はランダムな動きを目的とするゲームよりも実装がはるかに簡単で、...
1. すべてのタグには対応する終了タグが必要です以前の HTML では、<p> や &l...
この記事の例では、要素のマウスドラッグ効果を実現するためのvue+tsの具体的なコードを参考までに共...
目次1. css() の基本的な使用法: 1.1 CSSプロパティを取得する1.2 CSSプロパティ...
この記事は主に、nginx を介して方向プロキシを実装するプロセスを紹介します。この記事のサンプル ...
Fuser コマンドとは何ですか? fuser コマンドは、特定のファイル、ディレクトリ、またはソケ...
目次1. オプションとは何ですか? 2. 含まれる属性3. エントリー属性エルデータ方法コンポーネン...
プロジェクトをプロジェクトサイトのテスト環境にデプロイするJDK1.8トムキャット8.5 Maven...
1. SQL インジェクションとは何ですか? SQL インジェクションは、入力パラメータに SQL ...
目次1. コンポーネントの紹介2. コンポーネントの内部構造とロジック1. コード組織構造2. マッ...
パフォーマンスの問題のあるSQL文を取得する方法1. ユーザーからのフィードバックを通じてパフォーマ...
このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...
コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...
Linux のコマンドラインで他のユーザーにメッセージを送信するのは簡単です。これを行うコマンドは多...