目录
ECMAScript和JavaScript的关系:
该标准从一开始就是针对JavaScript语言制定的,但是之所以不叫JavaScript,有两个原因。一是商标,Java是Sun公司的商标,根据授权协议,只有Netscape公司可以合法地使用JavaScript这个名字,且JavaScript本身也已经被Netscape公司注册为商标。二是想体现这门语言的制定者是ECMA,不是Netscape,这样有利于保证这门语言的开放性和中立性。
因此,ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现(另外的ECMAScript方言还有Jscript和ActionScript)。日常场合,这两个词是可以互换的。
Es6和ECMAScript2015的关系:
ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。平常提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。
解构赋值
解构赋值 : 主要是针对数组和对象的解构 , 可以看成是一种匹配模式 ,对其中的变量进行赋值是 对 赋值运算符的一种扩展
优点: 在代码的书写上更加易读,语义更加清晰明了,方便从数组和对象中取数据
保持两边一致
解构目标 : 等号的左边
解构源 : 等号右边
可以嵌套 可忽略
可以不完全解构
可以写默认值
可以交换变量
扩展运算符 剩余运算符 取数组中剩余的数据添加给一个变量, 此时应在元素的最后
可以解析字符串
对对象的操作 提取json数据
箭头函数
ES6 允许使用“箭头”(=>)定义函数。
箭头函数 是 函数的一种更加简洁的写法
函数名 = 函数的参数 => 函数体
简写写法 : 1)当只有一个形参时,括号可以省略
2) 当函数体内只有一行代码时 {}可以省略
如果这一行代码是返回值 时 return 可以省略
箭头函数中this的指向
- 箭头函数中的this指向定义它的地方(父级作用域),而不指向调用它的地方,此时 this为静态的
- 箭头函数中的this永远指向箭头函数所在父级作用域所属对象
注意:
用let const var 定义的箭头函数 在全局环境下指window
对象的字面量写法 不产生新的作用域
箭头函数中的this不可以使用call apply bind 改变
构造函数 和 构造函数原型对象中的函数 如果用箭头函数依然指向 window
箭头函数中不含arguments
箭头函数的使用场合
- 箭头函数不合适使用在 构造函数和原型对象的函数中
- 箭头函数不适合使用在 对象的方法 和 事件后绑定的函数
- 适合在闭包函数中使用
- 适合在数组方法的回调函数中使用
- 适合在计时器的回调函数中使用