ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。
Mozilla公司将在这个标准的基础上,推出JavaScript 2.而ES6有着强大的目标,是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。
对ES6的支持可以查看http://kangax.github.io/compat-table/es6/,在这里可以清晰的了解到不同版本的浏览器对ES6功能的支持情况。如果你想现在就在浏览器使用ES6的特性,还可以通过引用兼容包的方式提前尝尝鲜。 https://github.com/paulmillr/es6-shim。
环境支持推荐用js工具babel来编译http://babeljs.io/。
变量与字符串
let是ES6中新增关键字。
它的作用类似于var,用来声明变量,但是所声明的变量,只在let命令所在的代码块内有效。
Example2
Q1:用let声明a变量默认为5,在if判断中let声明a为10,看a输出结果。
for循环的计数器,就很合适使用let命令。
const
const 声明的是常量,一旦声明,值将是不可变的。
const 也具有块级作用域
/* E5*/
const 指令指向变量所在的地址,所以对该变量进行属性设置是可行的(未改变变量地址),如果想完全不可变化(包括属性),那么可以使用冻结
/* E6*/
Q2:在if (true) { 声明一个const变量a,并为赋值为5, }在块级作用域中和外面,分别打印变量a看结果。
是否包含字符串三种新方法
传统上,JavaScript只有 indexOf 方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6又提供了三种新方法。
- includes():返回布尔值,表示是否找到了参数字符串。
- startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
- endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
这三个方法都支持第二个参数,表示开始搜索的位置。
- 上面代码表示,使用第二个参数n时,endsWith 的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。
repeat()原字符串重复
标签模板
模板字符串前面有一个标识名tag,它是一个函数。整个表达式的返回值,就是tag函数处理模板字符串后的返回值。
tag函数所有参数的实际值如下。
- 第一个参数:[‘Hello ‘, ‘ world ‘]
- 第二个参数: 15
- 第三个参数:50
也就是说,tag函数实际上以下面的形式调用。
tag用法
模板字符串可以是原始的
ES6还为原生的String对象,提供了一个raw方法。
若使用String.raw 作为模板字符串的前缀,则模板字符串可以是原始(raw)的。反斜线也不再是特殊字符,\n 也不会被解释成换行符:
有兴趣的小伙伴们还可以看下下面文档:
Happy coding .. :)