変数には、グローバル変数、ローカル変数があります
JavaScriptでは関数内で定義された変数がローカル変数です
はローカルスコープとグローバルに分かれていますスコープ ドメイン
js にはブロック レベルのスコープはありません ---この変数は中括弧の外側で使用できます
var num=10; //作用域链 级别:0 var num2=20; var str = "abc" function f1() { var num2=20; function f2() { var num3=30; console.log(num); } f2(); } f1();
レイヤーごとの検索、0 レベルのスコープが検索された場合、変数がまだ見つからない場合、結果は次のようになりますエラー
(1) 変数のプロモート
以下の場合、変数は拡張されていますが、num の値は拡張されていません。結果は 未定義
//变量的提升 console.log(num); var num=100; //提升之后为: var num;//变量的声明提前 console.log(num); var num=100;
(2) 関数宣言は拡張されており、コードは引き続き実行できます
//函数的声明被提前了 f1(); function f1() { console.log("这个函数,执行了"); }
ただし、次の状況の場合、コードはエラーを報告します
f2(); var f2=function () { console.log("小杨好帅哦"); } //声明提前后: var f2;//为一个变量,undefind f2();//undefind加括号是不被认可的,所以报错 var f2=function () { console.log("小杨好帅哦"); }
エラーの報告を回避するには、コードを次のように変更できます:
var f2; f2=function () { console.log("小杨好帅哦"); }; f2();
関連記事:
JavaScript スコープとスコープ チェーンについて話しましょう JavaScript スコープとスコープ チェーンの詳細な分析以上がJavaScript - スコープ、スコープ チェーン、および準備解析の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。