let 和 const 命令

ES6学习笔记
1、let命令
ES6中新增了let,用于声明变量,与var类似,但let声明只是在其block(块)作用域生效。

{
let a = 10;
var b = 1;
}
a  //ReferenceError: a is not defined
b  //1

2、const命令
同样在块级作用域有效的另一个变量声明方式是 const,它可以声明一个常量。ES6 中,const 声明的常量类似于指针,它指向某个引用,也就是说这个「常量」并非一成不变的,如:

{
  const ARR = [5,6];
  ARR.push(7);
  console.log(ARR); // [5,6,7]
  ARR = 10; // TypeError
}

有几个点需要注意:
let 关键词声明的变量不具备变量提升(hoisting)特性
let 暂时性死区
let 不允许重复声明
块级作用域:let 和 const 声明只在最靠近的一个块中(花括号内)有效
当使用常量 const 声明时,请使用大写变量,如:CAPITAL_CASING
const 在声明时必须被赋值

3、跨模块常量

//constants.js 模块
export const A =1;
export const B =2;
export const C =3;

//test1.js 模块
import * as constants form './constants';
console.log(constants.A);  //1
console.log(constants.C);  //3

//test2.js 模块
import {A,B}  form './constants';
console.log(A);  //1
console.log(B);  //2

4、全局对象的属性
全局对象是最顶层的对象,浏览器指的是window对象,Nodejs 是 global对象。

window.a = 1;   //a = 1
a=2;
window.a   // 2

//全局变量b由let命令声明,所以不是全局对象属性,返回undefined
let b = 10
window.b //undefined

你可能感兴趣的:(let 和 const 命令)