玩儿玩儿ES6—第一期


一、背景

ES6全称:ECMAScript6.0。它是一个国际标准,其实简单理解就是第六版JavaScript。为什么要说这一块内容呢?因为ES6确实好用,综合了很多java这种强类型语言的特点,又保留了本身弱语言操作的便捷性。所以呢,后续一起学习一下ES6吧。

说明一下哈:我准备跟以前版本的JS比较着来学习,这样理解会更深刻一点吧。

二、核心内容

1.变量声明

ES5及之前:var关键字。

ES6.0:let const。

解释:简单的一个变量声明,蕴含着很多知识。ES5之前没有块作用域,所以,使用var声明变量会出现“变量泄露”问题。而ES6可以很容易解决。(当然,用ES5的语法也是可以解决的,只是相对复杂。)

例一:

es5写的js

var name = 'zach';

while (true) {

var name = 'obama';

console.log(name);

break;

}

console.log(name);

执行结果

结论:内层{}的var变量值泄露到了括号外面。

解决:闭包解决

var name = 'zach';

(function(){

while (true) {

var name = 'obama'

console.log(name) //obama

break

}})();

console.log(name) //obama

执行结果:

大家可以看出结果的差距了吧。ES5中面对这种问题就是用闭包来解决的。那么到底什么是闭包。后面我会给大家细细讲讲。

es6写的js:

let name = 'zach';

while (true) {

let name = 'obama'

console.log(name) //obama

break

}

console.log(name) //obama

执行结果:

结论:let声明的变量相对于var添加了块作用域。什么叫块?其实{}包裹起来就叫块。

下面来谈谈闭包:闭包其实不难理解。var声明的变量没有块作用域,但是es5中是有函数作用域的。闭包其实就是将块变成函数,处理其作用域。

再看一个例子:

es5原生:

es5闭包解决之:

es6的写法:

大家看出其中的玄妙了吗?总之ES6提供的let关键字省去了很多逻辑上的麻烦。

再说:const。这个顾名思义就是在js中定义静态变量。相对于var变量,const变量一旦定义则不可修改。保证了一些变量的安全。

三、总结

本节我们主要是将说s6定义变量的事。但是其中穿插了一个很重要的概念:“闭包”。不管它有多难,我想以后再也不用鼓捣它了。ES6已经来了。

关注关注我吧!一起学习IT更多的知识。


优质内容筛选与推荐>>
1、hive安装笔记
2、不同的网络出现的报错
3、什么是软件设计
4、difference-between-jdk-jre-and-jvm
5、分割评估

长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号