ECMAScript是1996年网景公司把JavaScript提交给了欧洲计算器制作联合会;
版本:97年-1.0;98年2.0;99年3.0;2000年-4.0被和谐;09年5.0;15年ES6正式通过确定;
声明变量关键字:let和const
【let】
1.let声明的变量只能在一对{}里启用;
2.let声明的变量不能重复声明;
3.let声明不能变量提升
【const】
1.声明必须赋值;
2.建议变量名用大写;
3.声明后不能修改;
【解构】
一般都是解数组或对象。
数组和字符串解构:
基本;可嵌套;可忽略;剩余值运算符...;解构字符串;默认值;不用第三个变量来交换变量值;

对象解构:
基本;有剩余值运算符...rest;有默认值;解析对象不分顺序(变量名要和键名一致);

【es5新增方法】
trim();将字符串前后的空白去掉;trimLeft();去掉左边空白;trimRight();去掉右边空白;
例如:var str = "我爱中国 "; str = str.trim();
【es6新增方法】
repeat(n);重复字符串n次;
例如:var str = "我爱你"; console.log(str.repeat(3));
includes(s); 布尔值解构 查找字符串是否包含s字符;
例如:var str = "我爱你"; console
.log(str.includes("你")); //返回true;
statsWith(s) 是否以s字符串开头
endsWith(s) 是否以s字符串结尾
padStart(len,s);补齐至len位,以字符串s补齐。从前面开始补;
padEnd(len,s);补齐至len位,以字符串s补齐。从后面开始补;
例如:var str = "5"; console.log(str.padStart(3,0)); //输出005;
【es6字符串模板】
1.反斜点 ··
2.换行
3.特殊符号不转义
4.可以插入变量 ${变量名}
【es6数字】
1、Number.isInteger 是否是整数;
2、Number.isNaN() 是否是not a Number;
3、Number.isFinite 是否无穷;
4、2**3意思为2的3次方;

【es5-数组迭代】
1、forEach(function(item,index,self){})遍历数组,item遍历数组元素,index对应的下标,self数组本身;
2、map(function(item,index,self){})映射,把现有数组映射出来一个新数组;
3、filter(function(item,index,self){})
如果return值为true,则该元素保留,为false则被过滤掉;
4、reduce(function(a,b){})返回一个Any
a参数是上一次遍历时的结果,
b参数是当前遍历元素
5、some()返回一个bool
如果遍历的值有一个返回为true最终返回结果为true
如果遍历的值所有返回为false最终返回的结果才为false: .
6、every()
如果遍历的值有一个返回为false最终返回结果为false
如果遍历的值所有都返回为true最终返回的结果才为true;
【数组-es6】
1.find() 查找符合条件的第一个元素;
2.findIndex ()查找符合条件的第一个元素的下标;
- flat(n) 数组的扁平化,n是扁平化的层级;
- includes(el) 查找数组是否包含el ,return bool
- fill(num, start,end) 填充数组,num填充内容,start开始索引,end结束索引,end可不写;
6.copyWithin (rstart,start,end)从数组内容复制内容填充数组;rstart替换开始的位置,start拷贝的开始,end拷贝的结束;