为什么let在php中报错,ES6中的let和const关键字如何使用

ES6中的let关键字主要用于声明局部变量,而且不会发生变量提升;const声明一个只读的常量,声明后无法重新分配新的内容

ES6全称为ECMAScript 6.0是JavaScript语言的下一代标准,它的目的是让JavaScript语言可以用来编写复杂的大型应用程序,ES6的出现意味着JavaScript拥有更成熟的语法以及使编码更容易的新快捷方式,还有许多新的方法,新的关键字以及数据类型和其他增强功能等,接下来在文章中将为大家详细介绍ES6中的一些新特性

a10e6ab273123ba514d72f895741e577.png

let关键字

ES6引入了新的let关键字,它允许我们在函数范围内声明局部变量,例如语句,表达式或内部函数,类似于var但是let不像var那样会发生变量提升,所以,变量一定要在声明后使用,否则就会报错。let arr=[1,2,3]

for (let i = 0; i < arr.length; i++) {

console.log(i);

}

a4f5af000c7b5dae12e2334c7244ac9d.png

我们写一个for循环函数然后再循环外写一个语句重用相同的变量名称时结果如下图所示let arr=[1,2,3]

for (let i = 0; i < arr.length; i++) {

console.log(i);

}

let x=i*i;

e3fee8aea4c58b0d827ed58a0ae726b8.png

因为它的作用域仅限于在for循环内,所以外部未声明不可使用。

const关键字

新的const关键字可以声明一个只读的常量,也称为不可变变量,声明以后我们无法重新分配新的内容。const demo= 12;

console.log(demo);

9db3efea42192a517d7653e1817c2964.png

从效果图可以看出当const声明常量后如果我们再一次声明就会报错

但是不可变变量在ES6中并不总是完全不可变的,当我们就像保存一个对象一样保存常量,我们就可以改变它的属性和方法的值const foo =[];

不改变地址的情况下我们可以给它增加新的内容,const声明的常量,也与let一样不可重复声明。

215e064e9f0a75edd7cdd73b32c871f6.png

全局对象的属性

在JavaScript中全局对象就是指的是window对象,全局对象的属性赋值与全局变量的赋值是同一件事,在代码中如果一个变量未被声明则自动成为全局对象。这样的规定带来了很大的问题,没法在编译时就报出变量未声明的错误,只有运行时才能知道。但是ES6很好的解决了这一点,虽然通过let,const关键字来声明全局变量但是它不属于全局对象的属性,这也就意味着全局变量与全局对象的属性在逐步分离var a=1;

console.log(window.a);

let b=1;

console.log(window.b);

6b9135f691ecb5b12e81f130b58f395f.png

总结:以上就是本篇文章的全部内容了,希望通过本篇文章可以让大家对于ES6的知识有一定的了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值