JavaScript 變數宣告 var, let, const 比較

閱讀時間約 1 分鐘
JavaScript在ES6新增了let, const等宣告變數的方式,其中let, const是block scope的,而var則是function scope:
console:
有發現了嗎,test1用var來宣告,且宣告在if block裡面,但是在外面可以存取的到,test2用let來宣告,在外面則存取不到!
接下來看看const:
console:
const是用來宣告不會再改變的常數,因此才會報錯。

總結:

  1. 在開發過程中應該要盡量讓變數scope最小化,避免在大型專案裏面變數互相影響等問題。
  2. 在後續不需要再改變的變數,宣告成const會比較好,避免這個value在其它地方被修改。
#note IE11以下不支援let語法,IE11可以:
從console可以看到模擬成IE10,但會出現必須有;的錯誤訊息,但是其實它是因為看不懂第9行的let,我試過改成var就過了。
解決方法:
使用babel來解決,如以下line 5, 6.
其實babel只是幫忙把ES6語法轉成ES5, 讓瀏覽器可以看得懂!
console:
可以看到看的懂let語法了,但出現一行warning,意思應該是建議要上production的話要precompile速度會比較快吧! 有時間再來研究怎麼build.
為什麼會看到廣告
20會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
JavaScript Promise
閱讀時間約 3 分鐘
jQuery ajax contentType vs dataType
閱讀時間約 1 分鐘
你可能也想看
Javascript入門-Day2:語法、註解、變數在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
avatar
浴火重生的雞
2024-05-27
[ JavaScript 筆記] 變數 Variable & 值 Value 與他們的命名方式前言: 雖然前面有些定義還沒有完整的解釋,但還是後面再說吧, 誰想一直看理論啊(摔本子)
avatar
YAL
2024-04-25
JavaScript 有哪些資料型別? 怎麼辨別變數的資料型別?JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
Thumbnail
avatar
阿榮
2024-04-09
JavaScript 演義 #7: 三國爭地,變數如珍JavaScript 演義 #7: 三國爭地,變數如珍
Thumbnail
avatar
KH Huang
2023-09-19
JavaScript 程式札記 : 宣告變數 let、const 與 var 的區別 let 和 const 是 JavaScript 在 ES6 版本中新的變數宣告方式。使用 let 宣告的變數可以重新賦值,而使用 const 宣告的變數賦值後則不能改變。這兩種新的宣告方式提供了比 var 更嚴格和清晰的變數作用域管理。
Thumbnail
avatar
梧笙
2023-08-16
JavaScript面試考題:Hoisting是什麼?在JS中很重要的觀念就是hoisting,中文叫做「提升」
Thumbnail
avatar
溫蒂蒂蒂
2023-01-18
JavaScript 面試考題:事件委託是什麼在搞清楚事件委託前必須先了解什麼是事件傳遞機制(Event Propagation),也就是捕獲(capture)跟冒泡(bubble),聽起來好像很難但是我昨天看完彭彭的直播課程(17:00開始)後就懂了!我寫成文章幫助記憶,也希望能幫助到大家,然後希望我面試會被考到。
Thumbnail
avatar
溫蒂蒂蒂
2023-01-17
[JavaScript] 究竟什麼是Event loop?執行以上程式碼,然後看到了這個結果: 為什麼「延遲0秒」的函式寫在上方,但在console印出的結果,它還是被排在第二順位? 利用AC教材提供的youtube演講連結一窺究竟: 演講提供了更多JS的細節概念,身為JS新手的我還在消化,但若針對教案提出的問題來回答,加上利用google大神查到MDN的
Thumbnail
avatar
SUPOAN
2022-10-29
Javascript : Event Queue & Event Loop前言 這是第一次寫技術文章,但其實應該也只能說是蒐集很多資料並學習如何透過自己的話解釋的內容,並不能像其他大神可能分享一些很酷的技術,目標就單純是為了完成最後一週的作業(如下)。 走入非同步之前 執行環境(Execution Context) 執行環境堆疊 (Execution stack)
Thumbnail
avatar
Blockcyber
2022-08-16
JavaScript — var letJava script 中有其中兩種宣告分別是 var 跟 let var 結果: let 結果: ** let 是一種區塊的變數宣告像是 if else while for 即跳出區塊時就無法取得資料
avatar
John
2022-05-08