一、数组,字符串,对象常用方法。
ES数组:
ES1(1997年):join() ,reverse(),sort, toString
ES3(1999年):concat, pop ,push,shift,slice,splice,toLocalstring() ,unshift,
ES5(2009年): every, filter, forEach, indexof, lastIndexOf(),map, reduce, reduceright,some, isArray.
ES6(2015年): copywith, fill, find,findIndex, keys(),arrayof
ES2016(2016年): includes, values()
ES2017:
ES2018:
ES2019: flat。
ES Srting:
ES1: charAt ,indexof,lastindexof,
ES3:match, replace,replaceAll,slice,split,
ES5: trim
ES6:startsWidth()
endsWidth()
includes()
。
ES2017:padend,padStart
不知道的:repeat, concat, valueof。toLowerCase。toUpperCase。
https://zhuanlan.zhihu.com/p/102442557
https://www.cnblogs.com/theblogs/p/10575845.html
https://www.jianshu.com/p/c70c5333410c
二、ES6的改变内容
ES1,ES3是刚开始学习ES的。ES2没有内容改变,ES4没有发版。ES52009年。ES62015年。ES2016年。
ES5:
- 添加了“严格模式”。
- 添加了 JSON 支持。
- 添加了 String.trim()。
- 添加了 Array.isArray()。
- 添加了数组迭代方法。
ES6(2015年):我们主要学习ES6
- 添加了 let 和 const
- 添加了默认参数值
- 添加了 Array.find()
- 添加了 Array.findIndex()
ES2016:
- 添加了指数运算符(**)。
- 添加了 Array.prototype.includes。
ES2017:
- 添加了字符串填充。
- 添加了新的 Object 属性。
- 添加了异步功能。
- 添加了共享内存。
ES2018:
- 添加了 rest / spread 属性。
- 添加了异步迭代。
- 添加了 Promise.finally()。
- 增加 RegExp
二ES6回答:
一声明和语句的拓展:
一const常量 和let变量。 + for of
for in ES1就有了。 foreach是ES5的数组迭代方法。三者区别和优缺点:。
二 运算符扩展: 运算符拓展:2个。 +结构赋值:解构赋值1个。
功能: 复制数组,合并数组,展开字符串,展开数组。
扩展运算符:
1、函数调用: function(...iterableObj) ,
2、字面量 数组 构造 或者字面量字符串: [..iterableObj, '4', ...'hello',6]
let a = [1,2,3]
数组copy: let b = [...a]
数组concat: let c = [...a,...b]
数组unshift:ley c = [...b,...c] //unshift方法修改了原本存在的arr1数组
3、构造字面量对象,进行克隆或者属性拷贝。 let objClone = {...obj}
var obj 1 ={a:'a',b:32}
var obj2 = {b:'b',y:23}
let cloneObj1 = {..obj1}
let mergeObj2 = {...obj1,...obj2} Object.assign()函数触发setters,展开语法不会。
展开字符串:
a='123'
...a = 1 2 3
++指数运算符
1、从数组中提取值,变量赋值,解构。
数组的结构复制。
对象的结构复制。
字符串的解构赋值,
应用:交换变量的值,函数返回多个值,提取json数据。
三、内置对象的扩展:数据结构的拓展有6个:5个旧的+1一个新的。+一个内置对象。
字符串的拓展
函数的拓展
对象的扩展:
数字的拓展:
Symbel引入:对象属性名都是字符串。
Promise引入
Proxy引入。
Gentoer
四、模块的引入:
model模块和import模块