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