国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 磴口县| 阜新市| 正宁县| 伊宁市| 应城市| 伊川县| 固镇县| 东明县| 托克逊县| 大冶市| 阿鲁科尔沁旗| 浦东新区| 溧水县| 乌海市| 耒阳市| 黄山市| 固镇县| 手机| 岚皋县| 汉川市| 孝昌县| 上虞市| 古浪县| 贵州省| 九龙城区| 大足县| 泰来县| 绥江县| 高邑县| 岢岚县| 福泉市| 吕梁市| 利津县| 布尔津县| 东平县| 闽侯县| 榆树市| 崇信县| 景宁| 龙南县| 延边|