變數只是個名字,只是為了要識別,讓你程式語言在計算的時候,有個放計算資料內容的容器,當你在執行的時候就可以,依照你給他的容器名稱,把他叫出來使用,變數本身沒意義。
在程式語言中=(x 等號)而是指定,由右側的值指定給左側的變數名稱。==則是比較兩邊的值。 但在 JavaScript 中==雖然也是比較的意思,不過 JavaScript 會有自動轉型的問題,為了不要讓你的程式碼出現奇怪的內容,建議使用更為嚴謹的===。
保留字 | ||||||
---|---|---|---|---|---|---|
break | case | catch | class | const | continue | debugger |
default | delete | do | else | export | extends | finally |
for | function | if | import | in | instanceof | new |
return | super | switch | this | throw | try | typeof |
var | void | while | with | yield |
建立期 JavaScript 會先將你宣告的變數儲存,再給他一個初始化的值 undefined。
執行期再按照程式碼逐行執行代碼,將值分配給變量,並執行函數調用。
從上圖可知在 function 裡的 var 變數不會影響到外部程式,可在 if 身上會影響到外面的 console.log(a),代表 var 是 function scope。
同理從上圖可知 function 裡的 let 變數不會影響到外部程式,在 if 身上也不會影響到外面的 console.log(a),代表 let 是 block scope{}。
var | let/const | |
---|---|---|
Scope | function scope | block scope{} |
重複宣告 | 可 | 不可 |
變數內容重複指定 | 可 | 可/不可 |
可能會造成全域屬性 | 會 | 不會 |
變數提昇 | 有 | 有(被 TDZ 罩住) |