ES6中的 let 和 const

1.块级作用域 {}

ES6 中新增了块级作用域。块作用域由 { } 包括,if语句和 for语句里面的{ }也属于块作用域。
let 和 const 都是 块级作用域,声明的变量只在所在的代码块内有效。
在ES6之前,var声明的变量都会声明提前,并且造成全局变量的污染,所以在ES6中,诞生了let 和 const 防止这种情况的出现。

2.let

let 用来声明变量,跟var用法一样,不同的只有下面几点:
let声明的变量不会挂在window中,不会造成全局变量的污染

	let num = 10;
	console.log(num) //10
	console.log(window.num) //undefined

只在所在的代码块内有效 (块级作用域,{})

	{
		let num = 10;
		console.log(num) //10
	}
	console.log(num) //报错

let是不允许重复声明

	let a = 10;
	let a = 20;
	console.log(a);//'a' has already been declared

let不会有声明提前(实际上是有声明提前,提前在临时性的死区中)

	console.log(a);//Cannot access 'a' before initialization
	let a = 10;   //a提前到了临时性的死区中

3.const

const 声明一个只读的常量,一旦声明,常量的值就不能改变。意味着,一旦声明必须初始化,否则会报错。
let有的的它都有,这里就不多介绍
只读,不允许被修改(不允许改变内存空间的地址)

	const a = 100;
	a = 10;Assignment to constant variable
	console.log(a);

在不改变内存空间的地址的情况下,可以给修改引用类型

	const obj = {};
	obj.name = "jack";
	console.log(obj)

const声明和赋值必须一次性完成,并且后期不允许改变存储空间的地址

	const a;//Missing initializer in const declaration
	console.log(a);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值