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

首頁 > 開發 > JS > 正文

詳解javascript中的變量提升和函數提升

2024-05-06 16:44:34
字體:
來源:轉載
供稿:網友

1在js中只有兩種作用域

a:全局作用域

b:函數作用域

在ES6之前,js是沒有塊級作用域。

首先來解釋一下什么是沒有塊級作用域?

javascript,函數變量,變量提升,javascript的變量提升

所以此時 是可以打印輸出變量a的值。

2:什么是變量提升?

在我們的js中,代碼的執行時分兩步走的,1、解析 2、一步一步執行

那么變量提升就是變量聲明會被提升到作用域的最頂上去,也就是該變量不管是在作用域的哪個地方聲明的,都會提升到作作用域的最頂上去。

javascript,函數變量,變量提升,javascript的變量提升

那么上面這種寫法其實等價于下面這種寫法:

javascript,函數變量,變量提升,javascript的變量提升

看幾個例子:

javascript,函數變量,變量提升,javascript的變量提升

把上面的例子稍作改動:

結果就會大不一樣,

javascript,函數變量,變量提升,javascript的變量提升

再看一個例子:

javascript,函數變量,變量提升,javascript的變量提升

3:什么是函數提升?

javascript,函數變量,變量提升,javascript的變量提升

輸出的結果是:

javascript,函數變量,變量提升,javascript的變量提升

注意:函數聲明式,會將函數的聲明和定義一起提升到作用域的最頂上去。

如果是這種寫法:函數表達式聲明的函數

javascript,函數變量,變量提升,javascript的變量提升

例子:

javascript,函數變量,變量提升,javascript的變量提升

輸出的結果是:

javascript,函數變量,變量提升,javascript的變量提升

最后的總結:

1:所有的聲明都會提升到作用域的最頂上去。

2:同一個變量只會聲明一次,其他的會被忽略掉。

3:函數聲明的優先級高于變量申明的優先級,并且函數聲明和函數定義的部分一起被提升。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 根河市| 旅游| 聂拉木县| 泰顺县| 独山县| 黄大仙区| 涞源县| 墨竹工卡县| 灌南县| 沅江市| 佛山市| 遂平县| 台州市| 新民市| 梅州市| 榆社县| 沾化县| 蓬莱市| 福清市| 阜新| 霍州市| 潢川县| 汤阴县| 黄石市| 扬州市| 青田县| 当阳市| 长泰县| 罗江县| 靖安县| 江山市| 长垣县| 泾源县| 金湖县| 淳化县| 革吉县| 商丘市| 汝州市| 开远市| 安西县| 格尔木市|