ES6 - 變量聲明

hey ~ 我是肥陽,後期會持續更新,請記得點贊支持喲es6

  • let / const 不存在變量提高

變量提高:變量能夠在聲明以前使用數組

console.log(a); // undefined
var a = 10;
複製代碼
console.log(b); X 'Cannot access 'a' before initialization'
let b = '10'; 
複製代碼
console.log(b); X 'Cannot access 'a' before initialization'
const b = '10';  
複製代碼
  • let / const 聲明已存在的變量會報錯

var a = 20;
let a = 18;    X  'Uncaught SyntaxError: Identifier 'a' has already been declared'
複製代碼
var a = 20;
const a = 18;  X  'Uncaught SyntaxError: Identifier 'a' has already been declared'
複製代碼
  • let / const 不容許重複聲明

let a = 'woman';
let a = 'man';  X 'Uncaught SyntaxError: Identifier 'a' has already been declared'
複製代碼
const a = 'woman';
const a = 'man';  X 'Uncaught SyntaxError: Identifier 'a' has already been declared'
複製代碼
  • let 聲明的變量只在所在的代碼塊內有效,在範圍外不能使用

{
  var a = 1;
}
console.log(a); // 1
複製代碼
{
  let a = 10;
  console.log(a);  // 10
}
console.log(a);    // a is not defined
複製代碼
  • const 用來聲明一個常量,聲明後變量的值不能夠更改。且聲明變量必須初始化

const a = 2;   √
a = 5;         X   'Uncaught TypeError: Assignment to constant variable'
複製代碼
const a;       X   'Uncaught SyntaxError: Missing initializer in const declaration'
複製代碼
  • const 能夠對數組/對象的屬性進行操做,但不能把一個 新的數組 / 對象 賦給 原對象 / 數組。

const a = {};
a.age = 10;    √   // {age: 10}
a = {};        X  'Uncaught TypeError: Assignment to constant variable.'
複製代碼
const a = [];
a.push('first');  √  // ['first'];
a = [];           X  'Uncaught TypeError: Assignment to constant variable.'
複製代碼

另:聲明變量有6種方法:
let、 const、 var、 function、 import、 class
詳情請前往阮一峯大神的文檔地址:es6.ruanyifeng.com/#docs/letbash

相關文章
相關標籤/搜索