ブロックレベル関数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 * 詳細な説明
関数を記述できます。主に正規表現を使用して判断を行います。入力文字が空の場合は、「-」を使用して置き...
システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...
HTML デザインパターン学習ノート今週は主にHTMLデザインパターンを学びました。学習内容をまとめ...
コードをコピーコードは次のとおりです。 <オブジェクト id="player1&qu...
LocalStorageはブール値を保存します今日、ブール値データを保存するために localsto...
LinuxホストにSSHサーバーをインストールするには、次のターミナルコマンドを使用します: sud...
win7 64 ビットで mysql-5.7.5-m15-winx64 をインストールして構成する方...
ページをレイアウトする際、ユーザーに異なる視覚効果を与えるために、div の背景色を半透明の状態に設...
データを整理するためのリストWeb ページの表示を制御する多数の HTML タグを学習した後、読者は...
1. 問題の説明Docker コンテナにインストールされているストレージが終了状態になっているため、...
クラスタリングは、実際には InnoDB データベース エンジンに関連しています。したがって、インデ...
ある達人がかつて、自分の妻のことを知るのと同じくらい、自分が管理するデータベースのことを知るべきだと...
目次序文アドバンテージ:欠点: 1. レスポンシブな使用効果2. ステータスが同期されていないRea...
vertical-align属性は、主にインライン要素の配置を変更するために使用されます。インライン...
jsを使用して、中国語をピンインに変換するパッケージを作成しました。倉庫のアドレスはpinyin-p...