ES6之let和const命令(笔记)

ES6之let和const命令

1、let命令

  • 作用域:let所声明的变量只在let命令所在的代码块内有效(块级作用域),var全局范围内都有效。
{
    
    
	let a = 10;
	var b = 11;
}
console.log(a);//undefined
console.log(b);//11
  • 不存在变量提升:不像var那样,会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错。就是变量即使在使用后定义也会保错
  • 暂时性死区:只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。在代码块内,使用let命令声明变量之前,该变量都是不可用的。
  • 不允许重复声明:不允许在相同的作用域里重复声明同一个变量。

2、const命令

  • const也用来声明变量,但是声明的是常量,且一旦声明就不能再改变。因为const一旦声明,就必须初始化,所以如果使用const定义变量却没有赋值,则会报错。
  • 块级作用域、不存在变量提升、存在块级作用域、不允许重复声明:均与let相同

3、设置跨模块常量

//constants.js模块
export const A = 1;

//text1.js
import * as constant from './constants';
console.log(constant.A);

//text2.js
import {
    
    A} from './constants';
console.log(A);

4、全局对象属性:

全局对象是最顶层的对象,在浏览器指的是window 对象。
ES6一方面规定,var命令和function命令声明的全局变量,依旧是全局对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于全局对象的属性。

猜你喜欢

转载自blog.csdn.net/sanjun_done/article/details/103339545