ES6语法:let、const

ES6引入了let和const关键字,let用于声明块级作用域的变量,无变量提升且在for循环中表现良好。const则用于声明不可修改的常量,但复杂类型常量的属性值可变。这两者都解决了var的一些问题。
摘要由CSDN通过智能技术生成

ES6引入了两个新的关键字:let和const,它们用于声明变量。与传统的var关键字相比,let和const有一些重要的区别。

let

let关键字用于声明块级作用域的变量,其作用域仅限于当前代码块内。与var不同,let声明的变量不存在变量提升,必须先声明后使用。例如:

{
  let x = 1;
  console.log(x); // 输出 1
}
console.log(x); // 报错,x未定义

在for循环中使用let声明的变量,可以避免传统的for循环中因为变量提升导致的问题。例如:

for (let i = 0; i < 5; i++) {
  setTimeout(function() {
    console.log(i);
  }, 1000);
}

上述代码中,使用let声明i,每次循环都会新建一个i的副本,因此setTimeout中输出的i值分别为0、1、2、3、4。

const

const关键字用于声明常量,其值一旦被赋值就不能被修改。与let一样,const也是块级作用域的。例如:

const PI = 3.14;
PI = 3; // 报错,常量不可修改

const声明的常量必须在定义时初始化。例如:

const PI; // 报错,常量必须初始化

对于复杂类型的常量(例如对象、数组等),const只保证变量指向的地址不变,但是对象本身的属性值是可以修改的。例如:

const obj = { a: 1 };
obj.a = 2; // 正确,可以修改对象的属性值
obj = { a: 2 }; // 报错,常量指向的地址不可变

总结

let和const是ES6中新引入的声明变量的关键字,它们与传统的var有一些重要的区别。let声明的变量是块级作用域的,不存在变量提升;const声明的常量一旦被赋值就不能被修改,但是对于复杂类型的常量,其属性值是可以修改的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值