国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄平县| 溧阳市| 睢宁县| 新野县| 新和县| 枝江市| 神农架林区| 鄂州市| 万年县| 佛坪县| 安吉县| 洛隆县| 昌都县| 屯昌县| 嵊州市| 安泽县| 鄂尔多斯市| 富蕴县| 永兴县| 婺源县| 任丘市| 宿迁市| 古浪县| 海盐县| 西吉县| 信阳市| 方正县| 鲁甸县| 宣威市| 垫江县| 唐海县| 定日县| 丹棱县| 黄平县| 辽阳市| 石嘴山市| 舞阳县| 榆社县| 祁阳县| 祁东县| 福州市|