让java支持es6_ES6--JavaScript的第六个版本

本文介绍了ES6中的一些核心特性,包括新的变量声明方式let和const,强调了它们与var的区别,如块级作用域和非变量提升。此外,解构赋值简化了从对象和数组中提取值的过程,而箭头函数改变了this的行为。文章通过示例详细阐述了这些特性的使用方法和注意事项。
摘要由CSDN通过智能技术生成

一、新的变量声明方式 let/cons

与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升。

若是对变量提升不怎么了解的话可以去参考我的其他文章   javascript预编译的过程 。

什么是块级作用域腻?

写在 “{}” 内的内容   都是块级作用域。

在es6之前,我们想保护一个变量怎么办,将其放在一个立即执行函数里面,写在局部作用域中。

这样写是不是挺麻烦的捏,多谢几个单词不花时间么?!

在ES6中,我们想保护一个变量 只要 写在花括号中就好了。

{

let   a=10;

}

下面有两个例子:

{

let a= 20;

}

console.log(a);//a is not defined//写在块级作用域中的内容会被保护起来,所以会打印 a is not defined

而这个简单的例子,会被编译为:

{

let _a= 20;

}

console.log(a);//a is not defined

//ES5

console.log(a); //undefined

var a = 20;//在es5中var一个变量 会变量提升//如同//var a;//console.log(a); //从上向下顺序执行 当然会打印 undefined 的捏。//a=20

//ES6

console.log(a); //a is not defined

let a = 20;//变量不会提升 打印时当然是 a is not defined

b7bb49ac5187da65d05fa421c52ef6bf.png

当然,你的代码编译成为了ES5之后,仍然会存在变量提升,因此这一点只需要我们记住即可。

在实际使用中,也需要尽量避免使用变量提升的特性带来的负面影响。只有在面试题中,才会对变量提升不停的滥用。使用ES6,我们需要全面使用let/const替换var,那么什么时候用let,什么时候用const就成为了一个大家要熟练区分的一个知识点。

我们常常使用let来声明一个值会被改变的变量,而使用const来声明一个值不会被改变的变量,也可以称之为常量。当值为基础数据类型时,那么这里的值,就是指值本身。而当值对应的为引用数据类型时,那么我这里说的值,则表示指向该对象的引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值