国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript預解析詳解

2019-11-08 01:09:16
字體:
來源:轉載
供稿:網(wǎng)友

1、定義

預解析:在當前作用域下,js運行之前,會把帶有var和function關鍵字聲明的變量先聲明,并在內(nèi)存中安排好。然后從上至下解析js語句。而且function的聲明優(yōu)先于var聲明。

2、var聲明

通過var聲明的變量,進行預解析的時候:先聲明變量,不管變量有沒有賦值,聲明時都賦值為undefined。

console.log(a); //undefinedvar a = 1;console.log(b); //undefinedvar b = function(){}

注意: (1)同名的var聲明和同名的函數(shù)聲明,不管二者書寫先后順序,函數(shù)聲明會覆蓋掉var聲明的變量; (2)同名的var聲明,后者會被忽略; (3)同名的函數(shù)聲明,后者會覆蓋前面的

console.log(a) //function a(){} var a = 10; console.log(a) //10 var a = 20; console.log(a) //20 var a = function () { // body... } console.log(a) //function(){} function a(){} console.log(a) //function(){} /*若在此處加下面的聲明*/ /* function a(name){this.name = name} */ //則最上面的a輸出:function a(name){this.name = name}

3、function聲明

function進行預解析的時候,不僅是聲明而且還定義了函數(shù)體,在內(nèi)存中會開辟一塊內(nèi)存空間,存儲的是函數(shù)體的字符串,不會執(zhí)行。調(diào)用以后執(zhí)行。

console.log(a) //function a(name){this.name = name}function a(name){this.name = name}

注意:直接在函數(shù)后面加(),會報錯。這樣的函數(shù)聲明時,先聲明函數(shù),然后聲明(),這個()是匿名函數(shù),聲明會報錯

function a(){}() //報錯

注意問題

(1)預解析,不會超出script標簽

<script> console.log(a) // 報錯</script><script>function a(){}</script>

(2)后面script標簽中可以訪問呢前面script標簽中的js,因為js是從上至下執(zhí)行的

<script> function a(){} var a = 10</script><script> console.log(a) //10</script>

(3)匿名函數(shù)可以帶名字,但是不等同于定義了一個函數(shù)

console.log(a) //undefined fn() //報錯 var a = function fn (argument) { // body... }

(4)函數(shù)內(nèi)部同名變量額聲明高于傳入的同名參數(shù)

var a = 10function fn(a){ var a = 20 console.log(a)//20}fn(a)var a = 10function fn(a){ console.log(a)//undefined}fn() //因為調(diào)用時,沒有穿參數(shù)

(5) 函數(shù)內(nèi)參數(shù)的聲明高于外部同名變量的聲明

var a = 10 function fn (a){ console.log(a)//undefined } fn()

var a = 10 function fn (b){ console.log(a) // 10 } fn()

或者

var a = 10 function fn (){ console.log(a) // 10 } fn()
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 梅州市| 秭归县| 循化| 芦溪县| 灵武市| 靖边县| 龙口市| 嵊泗县| 东源县| 千阳县| 张家川| 柯坪县| 尖扎县| 临泽县| 江华| 池州市| 渭源县| 陆丰市| 霍林郭勒市| 高台县| 玉门市| 湘潭市| 萍乡市| 苍山县| 清远市| 和硕县| 沅江市| 治多县| 河曲县| 息烽县| 新乡市| 平果县| 黔西县| 崇左市| 库伦旗| 陕西省| 峡江县| 兴业县| 罗定市| 延津县| 曲阜市|