提前宣告:此文章僅僅用于個人成長學習的記錄,
內容部分摘抄自:
一:https://github.com/qianguyihao/Web/tree/master/05-JavaScript%E4%B9%8BES6%E8%AF%AD%E6%B3%95
二:阮一峰 | ECMAScript 6 入門,
三:https://segmentfault.com/a/1190000020678240
ES6 的變數宣告
1:var、let 、const用來宣告變數,
1.1:var,定義全域變數( var 是 variable 的簡寫),
1.2: let,定義區域變數,替代 var,
1.3: const,定義常量(定義后,不可修改),
2:作用域:
2.1:全域作用域
· 2.1.1:var在全域作用域中定義后自動賦值給window,可以使用`window.“”` 來獲取出來,容易污染資料
2.2:函式作用域 function() {}
2.3:塊級作用域 {}
3:let 和 const 的特點【重要】
3.0:賦值使用
const命令宣告常量后必須立馬賦值
let命令宣告變數后可立馬賦值或使用時賦值
3.1:支持塊級作用域
3.2:不存在變數提升
解釋:和暫時性死區有共同特定,變數不存在變數提升,都是需要先宣告再使用
3.3:禁止重復宣告
解釋:在同一作用域中重復宣告同一變數
3.4:暫時性死區
解釋: 使用 let/const 宣告的變數,會使區塊形成封閉的作用域,若在宣告之前使用變數,就會報錯,
const name = 'qianguyihao'; function foo() { console.log(name); const name = 'hello'; } foo(); // 執行函式后,控制臺報錯:Uncaught ReferenceError: Cannot access 'name' before initialization
/**
* 一共說明兩個問題:
* 1:變數“name”在函式foo外部定義了的,在函式內部重新定義一個同名的“name”變數,函式會形成一個封閉的作用域,唯一的變數為函式內部中的“name”變數,如果沒有在foo函式中再次定義“name”變數就不會報錯了
* 2:這個不是重復宣告變數,他們在不同的作用域中
*
*/
相反"var"宣告:存在變數提升、可以重復宣告、不支持塊級作用域
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/251561.html
標籤:JavaScript
上一篇:聊聊 React
