## ==討論日期 : 3/13 ( 三 )== ## 💖 複習 🥰 [核心篇第一堂:變數的宣告與提升](https://hackmd.io/@hexschool/HJPpXjcGo) <br> ### 什麼是作用域 (scope)? - 我認為的作用域:{} - 變數在程式中可以被存取的範圍 - 全域和區域 [Javascript 的作用域 (Scope) 與作用域鏈 (Scope Chain) 是什麼?](https://www.explainthis.io/zh-hant/swe/what-is-scope-and-scope-chain) <br> ### var 會造成什麼樣的問題呢? - 感染全域變數 - 全域變數會滲透到 window 物件 - 古早產物,可以重複宣告同個名稱的變數 - var 是屬於函式作用域 - 可以重複宣告,這樣會導致變數設定上混亂 - 具有提升現象 [let 和 var 在 for迴圈中的結果差異](https://medium.com/randy-chen/let-%E5%92%8C-var-%E5%9C%A8-for%E8%BF%B4%E5%9C%88%E4%B8%AD%E7%9A%84%E7%B5%90%E6%9E%9C%E5%B7%AE%E7%95%B0-54f61cdb5f48) <br> ### 什麼是 hoisting? - 用來形容 JavaScript 編譯階段將變數和函式的宣告存入記憶體的概念 - JavaScript 編譯階段將變數和函式的宣告存入記憶體的概念 - var let const 都有提升現象,提升現象舉個例子是函式寫在執行前執行後都可以運行,let const 有提升現象但會進入暫時性死區,導致無法在宣告前就取得變數 - var 提升:編譯時,變數宣告被提升但還不會賦值,如果提早呼叫會出現 `undefined` 函式也會提升:所以可以在宣告前呼叫 -  [暫時性死區](https://suochantsao.medium.com/js%E7%AD%86%E8%A8%98%E7%B3%BB%E5%88%97-%E6%9A%AB%E6%99%82%E6%80%A7%E6%AD%BB%E5%8D%80-temporal-dead-zone-c7cad9b5cc1) [理解ES6中的暫時死區(TDZ)](https://eddychang.me/blog/es6-tdz) <br> ### var、let 和 const 之間的主要區別 - var 兩個主要概念 - hoisting & 函式作用域 - let 和 const 概念 - 也有 hoisting 但是是以暫時性死區呈現,兩個都是塊級作用域 - 而 let 和 const 差別則是能不能重複賦值;而 var 可以重複宣告,let、const 則不行 <hr> ## 額外分享 - 圖片怎麼找 - 圖庫有用unsplash、pexels、日本免費圖庫(https://www.photo-ac.com/)、設計師使用的圖庫(https://www.freepik.com/) - 我有試過這個,但是不好做,容易出錯 https://designer.microsoft.com/
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up