javascriptの変数宣言と関数アップ
2183 ワード
javascriptの変数宣言と関数アップを理解するには、javascriptコードに対するブラウザの処理過程を理解することが重要である.
変数と関数を含む宣言はコード実行時に先に処理されます.
例:
エディタに「var a=1」と書きます.
ブラウザの処理プロセスは、(先に変数を宣言する)var aです.(再変数の割り当て)a=1
1.変数のアップグレード:
例:
関数宣言のアップグレードが変数のアップグレードより優先的で、同じような宣言の場合、前後の順序にかかわらず、関数の宣言は変数の宣言を上書きします.
例1:
関数宣言の構文:
変数と関数を含む宣言はコード実行時に先に処理されます.
例:
エディタに「var a=1」と書きます.
ブラウザの処理プロセスは、(先に変数を宣言する)var aです.(再変数の割り当て)a=1
1.変数のアップグレード:
例:
function test(){
a = 2;
var a;
console.log(a) //2
}
実際のブラウザの処理プロセス:
function test(){
var a;
a = 2;
console.log(a) //2
}
例2:
function test(){
console.log(a)
a = 2;
var a ;
}
実際のブラウザの処理プロセス:
function(){
var a;
console.log(a) //undefined a
a = 2;
}
2.関数宣言の昇格:関数宣言のアップグレードが変数のアップグレードより優先的で、同じような宣言の場合、前後の順序にかかわらず、関数の宣言は変数の宣言を上書きします.
例1:
var a = 1;
function f(){
console.log(a);
var a = 2;
console.log(a);
} f();
実際のブラウザの処理プロセス:
var a;
a = 1;
function f(){
var a ;
console.log(a)
// a console.log(a) , , a undefined
a = 2;
console.log(a)
// console.log(a) ,a 2, 2
}
例2:関数宣言の構文:
f("hello");
function f(a){
console.log(a)//hello
}
:
f("hello");
var f = function (a){
console.log(a)// 。f is not function
}
なぜエラーが発生したのか、ブラウザの処理過程を理解してください.
var f;
f("hello");// ,f , f is not function,
f = function (a){
console.log(a)
}
例3:
getName();
var getName = function(){
console.log(" ");
}
function getName(){
console.log(" ");
}
getName();
例3ブラウザはどのように処理しますか?
var getName;// ,
function getName(){//
console.log(" ")
}
getName();// , “ ”
getName = function() {//
console.log(" ")
}
getName() // , , 。
誤りがあったら指摘してください.