ES6-----let、const

let

1、let  声明的变量只在 let 命令所在的代码块内有效(块级作用域、局部作用)

2、基本用法:是一个代码块,用{}括起来的

 例如 var fn=function(){}函数     {}  if(){}  for(){} 代码块

//{}括起来的代码块
{
  let a = 0;
  console.log(a);   // 0
}
console.log(a);   // 报错 ReferenceError: a is not defined

3、特点代码块内有效不能重复声明不存在变量提升

​
			for(var i=0;i<10;i++){
				// console.log(i)
				function fn(){console.log(i)}
				arr.push(fn)
			}
			arr[0]() //若用var申明,调用数组的每一个函数都将打印10

​
{
	let a = 0;
	var b = 1;
    
}
console.log(b); // 1
console.log(a); // ReferenceError: a is not defined
var a = 1;
var a = 2;
console.log(a);  // 2

let b = 3;
let b = 4;
console.log(b);  // Identifier 'a' has already been declared

 不同于var,var会变量提升

 console.log(a);  //undefined
var a = "banana";

console.log(b);  //ReferenceError: b is not defined
let b = "apple";

不会成为window的属性,即在全局作用域中用let声明的变量,使用window.变量名不会生效 

 let a=10
consle.log(window.a)  //undefined

const

1、const 声明一个只读变量,声明之后不允许改变。意味着,一旦声明必须初始化(let不用),否则会报错。

注意:但是如果声明引用数据类型,则可以修改其属性的值 

			const a=100;
            var a=200 //const a=200
			console.log(a) //报错

            const a;
            a=100;
            console.log(a) //报错
			const lion={name:"小羊",age:21};
			lion.name="小狮子";
			console.log(lion);//小狮子

 

2、暂时性死区: ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。代码块内,在声明变量 PI 之前使用它会报错。

var PI = "a";
if(true){
  console.log(PI);  // ReferenceError: PI is not defined
  const PI = "3.1415926";
}

注意点

  • let 和const 关键词声明的变量不具备变量提升(hoisting)特性

  • let 和 const 声明只在最靠近的一个块中(花括号内)有效

  • 当使用常量 const 声明时,请使用大写变量,如:CAPITAL_CASING

  • const 在声明时必须被赋值(初始化)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值