Javascript変数の実行過程と配列とオブジェクトの違い
954 ワード
変数の昇格
問題提起
jsでは関数の宣言は変数優先度より高く、定義プロセスは変数によって上書きされません.
あなたのコードは
第一は、Objにはその属性が必要であり、第二の属性は動的に属性を追加することができます.文字列による方法です.
var f = 1;
function bar(){
f = 10;
function f(){
}
}
bar();
alert(f);
:1、 bar, f
2、f = 1
3、bar ,
3.1、 f
3.2、 f 10
3.3、 ,
4、alert(f) 1
JS実行プロセス1.先に変数を上げる(先に関数を上げて変数を上げる、名前が同じなら、変数は関数をカバーして上げます)2.また実行します.もしクローズドが発生したら3を作成します.クローズドスペースで1と2を繰り返します.先に定義します.5.変数は6.関数を上げます.問題提起
function change() {
alert(typeof fn);
function fn() {
}
var fn
}
change()
なぜundefinedではないですか?jsでは関数の宣言は変数優先度より高く、定義プロセスは変数によって上書きされません.
あなたのコードは
function change() {
function fn(){}
var fn;
alert(typeof fn) // function
fn=1;
alert(typeof fn) // 1
}
change()
配列とオブジェクトの違いvar arr = [ , , , , ,];
var obj = {
xxx :xxx,
xxx :xxx
}
注意obj.xxx
とobj[xxx]
の違い第一は、Objにはその属性が必要であり、第二の属性は動的に属性を追加することができます.文字列による方法です.