ES6全称是ECMAscript6,其实就是js的第6个版本,由于ES5这个版本中并未更新太多内容,ECMA协会将大部分的内容在ES6中更新,之后又宣布随时可以向协会提交内容,随时更新;然后,在每年的6月份左右,再统一更新版本,并以每年的年份作为版本号。
使用
虽然目前主流的浏览器都已支持ES6的语法,但有时候还是需要考虑某些低版本浏览器兼容性的问题(IE8),这时我们就需要引入babel来编译,转换成es3。
通常使用的方式是webpack+babel的方式进行编译,当然如果喜欢gulp也不是不行。
基础语法
变量声明
-
let :增加了块级作用域,声明时必须赋值。
js中使用var
声明的变量,只存在全局作用域以及局部作用域(即函数作用域)。
而使用let
声明的变量,是存在块级作用域的,即代码块之间相互获取变量值。并且let
在声明变量时必须赋值,否则浏览器会直接报错。 -
const :常量,声明时也必须赋值。
用const
声明的是常量,即在声明赋值后就不能再改变,否则会报错。
当然,在声明类型为对象时,我们可以进行添加删除属性。
我们知道js中的数据类型分为基础数据类型和复杂数据类型,基础数据存放在堆中,存放的就是值。而对象即复杂数据类型是存放在栈之中,它实际存放的其实是一个地址,我们改变这个对象下的属性或者方法是并不影响这个地址。但如果你重新将对象赋值给它,改变了地址就会报错。
字符串
在ES6中,我们可以使用两个<code>``</code>符号来表示字符串。
可以在<code>``</code>之家写入变量进行字符串拼接
const app = d
const str = `abc${app}cba`
console.log(str) //abcdcba;
箭头函数
在之前我们声明一个匿名函数是这样
function(a){
return a=3;
}
而在ES6中:
a=>{a=3}
具体是这样:
() => { ... } // 没有参数
x => { ... } // 一个参数 一个标识符
(x, y) => { ... } // 几个参数
网友评论