摘要:參考了上面的三份文檔,寫一下自己對變量提升的總結。中執行上下文特別是創建和執行階段工作方式的一種認識。變量和函數聲明被從它們在代碼流中出現的位置移動到代碼的頂端。不同的情況下聲明的含義存在差別。總結變量必須有創建并且初始化才能正常使用。
Refer:
https://developer.mozilla.org/zh-CN/docs/Glossary/Hoisting https://www.zhihu.com/question/19636194 https://developer.mozilla.org/zh-CN/docs/Glossary/Hoisting 感謝大牛們對知識的慷慨。參考了上面的三份文檔,寫一下自己對變量提升的總結。
what:Javascript中執行上下文 (特別是創建和執行階段)工作方式的一種認識。
how:變量和函數聲明被從它們在代碼流中出現的位置“移動”到代碼的頂端。
不同的情況下***聲明***的含義存在差別。
總結:
變量必須有創建并且初始化才能正常使用。
MDN 上的 “變量可以在聲明之前進行初始化和使用” 這句話適用于var,不適用與let
var 變量提升了num的創建和初始化, 把num初始化為undefined
let 變量提升了num的創建,但是沒有提升初始化,所以拋出異常
提升是以作用域為單位的
var 提升
let 提升
const 提升
函數提升:函數聲明會被提升,但是函數表達式不會
函數聲明
函數表達式
命名的函數表達式,函數標識符在外圍作用域中也是不可用的
函數優先
函數會首先被提升,然后才是變量
后續的函數聲明確實會覆蓋前一個函數聲明
把變量提升拆分三個部分:創建,初始化,賦值。對比如下:
如理解有誤:請幫忙指出,萬分感謝?。。?/p>
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102856.html
摘要:所謂變量提升,提升就是為了事先聲明變量。變量提升之后,但其賦值還是留在原本的位置等運行到了之后動態賦值,而函數提升之后直接相當于在代碼里抽空了。搞明白這個例子也就搞懂了作用域中變量和函數是怎么提升的。 問題 showImg(https://segmentfault.com/img/bVJ614?w=222&h=165); 在這個例子中它應該輸出什么?輸出的結果是6。 showImg(h...
摘要:什么是函數作用域下的變量提升和函數提升函數作用域中也存在變量提升和函數提升,這個和全局作用域下的情況是一模一樣的,就是把作用域想成是全局的就可以了。 在js中有一部分比較難以理解,卻也是在筆試過程中很容易考的,那就是變量提升和函數提升的問題,這篇文章我會就變量提升和函數提升的問題拓展一下有關js函數的知識點,包括作用域的問題,后面還會有一些小練習來判斷自己是否真的搞懂了。 作用域 在j...
摘要:對于大多數開發者來說,變量提升可以說是一個非常常見的問題,但是可能很多人對其不是特別的了解。如果說擁有和一樣的變量提升效果的話,那么應該是輸出。而和它們的變量提升的效果是一樣的,也都存在著臨死性死區的概念。 對于大多數js開發者來說,變量提升可以說是一個非常常見的問題,但是可能很多人對其不是特別的了解。所以在此,我想來講一講。 先從一個簡單的例子來入門: a = 2; var a; ...
摘要:變量的作用域無非就是兩種全局變量和局部變量。其中內部函數中可以訪問外部函數的變量,是因為內部函數的作用域鏈中包含了外部函數的作用域也可以理解為內部函數的作用范圍輻射到了外部函數的作用范圍另一方面,在函數外部自然無法讀取函數內的局部變量。 以前學習的時候,了解過變量提升和閉包,但是沒有深入了解,網上查了資料,這里記錄下,只供參考。部分內容引用: https://www.cnblogs.c...
摘要:代碼在執行之前會先全局中變量提升函數聲明。函數的執行上下文,也就是在這個函數范圍內找到函數執行上下文中函數范圍內,所有用聲明的變量。函數執行時,按照執行位置查找變量作用域只會向上查找。下一回變量作用域與閉包 上一章:JS的數據類型 傳送門:https://segmentfault.com/a/11... 好!話不多少,我們就開始吧。對變量提升和函數聲明的理解,能讓你更清楚容易的理解,...
摘要:代碼在執行之前會先全局中變量提升函數聲明。函數的執行上下文,也就是在這個函數范圍內找到函數執行上下文中函數范圍內,所有用聲明的變量。函數執行時,按照執行位置查找變量作用域只會向上查找。下一回變量作用域與閉包 上一章:JS的數據類型 傳送門:https://segmentfault.com/a/11... 好!話不多少,我們就開始吧。對變量提升和函數聲明的理解,能讓你更清楚容易的理解,...
閱讀 2293·2021-11-25 09:43
閱讀 3446·2021-10-25 09:48
閱讀 1321·2021-09-13 10:24
閱讀 2735·2019-08-29 15:07
閱讀 1258·2019-08-29 13:14
閱讀 3265·2019-08-29 12:22
閱讀 1354·2019-08-29 11:32
閱讀 3229·2019-08-29 11:23