iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
1
Modern Web

和少女工程師一起學 JavaScript 系列 第 6

和少女工程師一起學 JavaScript:Day05 提升

  • 分享至 

  • xImage
  •  

今天的主題是「提升」,我們直接舉一個能快速了解提升的例子

正常來說,在變數未宣告之前就使用會回傳一個錯誤

console.log(a); //a is not defined

但是當你在 console 下方加上變數宣告,會發生一件神奇的事

console.log(a);
var a = 1;

//undefined

輸出結果是 undefined,並非 a is not defined,原因是因為宣告被「提升」上去了。

執行時期所有用 var 宣告的變數,都會自動提升至範圍第一行

以上就是最基本的,提升的特性。

另外值得注意的一件事,只有宣告被提升,賦值的部分並沒有一起被提升。若想要更深入了解,大家需要先知道 Javascript 的執行環境分為兩個階段:創造環境 以及 執行

  • 創造環境:創造環境會先把變數提出來,並且在記憶體上給他一個空間
    此時變數型別是 undefined
  • 執行:執行階段時才會依序執行這些程式碼

所以其實在創造環境時就已經先建立 var = a; 到了執行時才加上 a = 1;,可以想像是拆成以下步驟

//創造環境
var a;

//執行
console.log(a); //undefined
a = 1;

上一篇
和少女工程師一起學 JavaScript:Day05 變數與屬性
下一篇
和少女工程師一起學 JavaScript:Day07 陣列
系列文
和少女工程師一起學 JavaScript 27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言