js基础细节
js細節(jié)1.所有的全局變量都是window的屬性.
語句 var a=1;
等價于 window.a=1;
用 "變量名稱" in window 來驗證全局變量是否聲明.2.所有的變量聲明都在范圍作用域的頂部.alert("a" in window);
var a;盡管a的聲明在 alert 之后,alert彈出的依然是true;
這是因為javascript引擎首先會掃描所有的全局變量聲明,
然后將這些變量聲明移動到頂部,最終的代碼效果是這樣的:
var a;
alert("a" in window);3.函數(shù)聲明 和 變量聲明 在進入執(zhí)行上下文就完成了.變量聲明:
var a;函數(shù)聲明:
function functionName(arg1,arg2){//函數(shù)體
}變量賦值:
var a;--變量聲明
a=1;--變量賦值函數(shù)表達式:(匿名函數(shù)賦值給變量)======>函數(shù)表達式 相當(dāng)于 變量賦值
var functionName=function(arg1,arg2){//函數(shù)體
}
拆解:
var functionName;
functionName=function(arg1,arg2){//函數(shù)體
}優(yōu)先級:函數(shù)聲明 會覆蓋 變量聲明,但不會覆蓋 變量賦值4.this 變量:永遠指向函數(shù)運行時所在的對象,
而不是函數(shù)被創(chuàng)建時所在的對象。
如果處在匿名函數(shù)中、或者不處于任何對象中,
this 都指向宿主的根對象(在瀏覽器里面就是 window)javascript中還用 call() 和 apply() 來調(diào)用函數(shù),
再記住下面這兩句話:
如果是call()、apply()、with(),指定的this是誰,就是誰 !
普通的函數(shù)調(diào)用,函數(shù)被誰調(diào)用,this就是誰。
?
總結(jié)
- 上一篇: Extending_and_embedd
- 下一篇: 王大锤_百度百科