var、let、const 之間的區別和聯繫

let、const都是ES6中新增長的特性,都表示塊級做用域,即它們只在最近的代碼塊中生效;markdown

let:

  • let 聲明一個局部變量
  • 不存在變量提高,即便用的時候必須先聲明
  • 同一個代碼塊中不能重複聲明

const:

  • const聲明一個局部常量
  • 聲明的時候必需要賦值,賦值以後通常不可修改內存地址,可是能夠修改屬性成員。(即const聲明一個對象時,對象裏面的屬性能夠修改)
  • 通常使用大寫命名
const NUM = 1;
NUM = 0;//報錯

//可是若是聲明的是一個對象
const OBJ_STUDENT = {name:'aaa'};
OBJ_STUDENT.name = 'bbb';//不報錯
OBJ_STUDENT = {name:'ccc'};//報錯
複製代碼

var:

  • var 聲明的是一個全局的變量,在var所在的函數內生效
  • 存在變量提高,即在未聲明的時候使用這個變量會打印undefined
console.log(x);//undefined
var x = '全局變量';

//可是let會報錯
console.log(x);//ReferenceError: x is not defined
let x = '全局變量';
複製代碼
相關文章
相關標籤/搜索