ES6
其实就是JS发展过程中的某一个版本号
举例:
微信 在最初的版本中并没有所谓的 微信支付
但是随着时间的流逝,微信也在一版一版的迭代更新
然后微信在更新的过程中的某一个版本,推出了微信支付
JS:
JS在最初的版本中并不是像现在一样具备很完善的功能
但是随着时间的流逝,JS也在一版一版的迭代更新
然后在版本号为ES6这一个版本的时候,推出了很多好用的而且常用的功能
但是后续也还有新的版本推出,ES7 ES8 ES9···
因为后续版本更新的内容每年一次,但是内容方法不多,所以也没有人特别记忆这个方法是 ES7 还是ES8 还是ES9
我们统称为 ES6 的方法,或者 ES6+ 的方法
在 ES6 刚出的时候,因为浏览器是浏览器厂商生产的,所以有些功能浏览器还暂时不支持
所以当时写的时候还需要考虑兼容性,比如当前浏览器是否支持 ES6
但现在基本所有主流浏览器都全面支持 ES6 了
let 与 const
面试题:ES6新推出的 let 与 const 这两个方法与之前的 var 有什么区别?
以前声明变量一直使用的 var 关键字来声明变量
在ES6 的时候多了两个关键字 let 与 const 也是用来声明变量
语法:let变量名 const 变量名
let 与 const 和 var 的区别
1.let 与 const 不允许重复声明
2.let 与 const 声明变量的时候不会出现变量提升
3.let 与 const 声明的变量会被所有的代码块{}限制作用范围
let 与 const 的区别:
1.let 声明的变量的值可以改变,const 声明的变量的值不可以被改变,所以我们也把 const 声明的变量叫做“常量”
2.let 定义的变量可以不赋值,但是 const 定义的变量必须赋值
变量提升:
-
在定义变量前去使用这个变量时,如果是通过var这个方法定义的变量,那么就会出现变量提升,也就是说能用这个变量,但是没有实际的值,得到的值为undefined
-
但是如果是通过let 或者const定义的变量,则不会出现变量提升,也就是说在定义前使用变量,浏览器会报错
箭头函数
箭头函数是 ES6 里面一个简写函数的语法方法
重点: 箭头函数只能简写函数表达式,不能简写声明式函数
语法:(函数的形参)=> {函数体内要执行的代码}
箭头函数的特殊性 --- (面试题:箭头函数与普通函数有什么区别)
1.箭头函数内部没有this,箭头函数的this是书写时所在位置的this值
2.箭头函数内部没有arguments这个参数集合
3.如果形参只有一个的时候,小括号可以不写;如果有多个形参,或者没有形参的时候,小括号必须写
4.函数体只有一行代码的时候,可以不写大括号,并且会自动return
解构赋值
就是快速的从对象或者数组中取出成员的一个语法方式
解构赋值的注意点!
-
{}是专门解构对象使用的
-
[]是专门解构数组使用的
两个不能混用