背景
JavaScript 是大家所了解的语言名称,但是这个语言名称是商标( Oracle 公司注册的商标)。因此,JavaScript 的正式名称是 ECMAScript 。1996年11月,JavaScript 的创造者网景公司将 JS 提交给国际化标准组织 ECMA(European computer manufactures association,欧洲计算机制造联合会),希望这种语言能够成为国际标准,随后 ECMA 发布了规定浏览器脚本语言的标准,即 ECMAScript。这也有利于这门语言的开放和中立。
ES6 的目标与愿景
成为更好编写的开发语言有以下目标。
适应更复杂的应用;实现代码库之间的共享;不断迭代维护新版本。
let和const
es6引入了let和const关键字来代替原本的var,原本在js中定义常量和变量都是通过var来定义,使用时难以区分变量和常量
es6引入let来定义变量,const定义常量,还能解决原本使用var时候的变量穿透问题
变量穿透的例子如下
1 | for(var i=0;i<5;i++) { |
在其它语言中第6行的console.log(i);
会直接报错,但是在js中会输出下面的情况
可以看到,在for循环中只循环了5次,却输出了6个数,而且在for中定义的循环变量i,应该只是一个局部变量,但是却可以在外部访问到,这就是js原本使用var所产生的变量穿透问题,可以通过使用let来定义变量解决
1 | for(let i=0;i<5;i++) { |
查看输出结果
模板字符串
在es6之前,当我们需要输出一句话包括一个对象参数时,我们通常会这样写
1 | var pesion = { |
看看效果
在es6之后,我们可以通过新的方法模板字符串来使得拼接字符串更加简便
1 | var pesion = { |
只需要把字符串原来的" "
换成``` `就可以使用模板字符串了。
和EL表达式类似,只需要${ }
在括号中输入变量即可,会自动替换。
会发现结果还是和原来一样