关于 JS 的 ES6

114 阅读3分钟

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

解构赋值

就是快速的从对象或者数组中取出成员的一个语法方式

解构赋值的注意点!

  • {}是专门解构对象使用的

  • []是专门解构数组使用的

两个不能混用