1.let 声明,与var声明相比,定义局部变量,1.不会出现变量提升。2.不允许重复声明,3。声明的变量只有在当前作用域有效。
2.const 声明一个只读的常量。常量:值不可以改变的量,声明的变量必须赋值。
延展操作符(Spread operator) . . .
将数组表达式或者string在语法层面展开;还可以在构造对象时, 将对象表达式按key-value的方式展开。
[...iterableObj, '4', ...'hello', 6];
let objClone = { ...obj };
模块化
模块的功能主要由 export 和 import 组成。每一个模块都有自己单独的作用域,模块之间的相互调用关系是通过 export 来规定模块对外暴露的接口,通过import来引用其它模块提供的接口。
var name = 'Rainbow';
var age = '24';
export {name, age};
-----------------------------------------
import {myModule} from 'myModule';// main.js
import {name,age} from 'test';// test.js
模板字符串
以前:var name = 'Your name is ' + first + ' ' + last + '.'
现在:var name = `Your name is ${first} ${last}.`
解构赋值
作者:上沅兮
链接:https://juejin.im/post/5ca2e1935188254416288eb2
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
数组的新方法
3.数组方法 [ ].findexIndex(a).方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
4.forEach()
方法对数组的每个元素执行一次提供的函数。功能等同于for
循环.
5.map()
方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
6.filter
用于返回满足条件的元素, 返回一个新数组,如果在回调函数中返回true,那么就留下来,如果返回false,就扔掉
7.some
用于遍历数组,如果有至少一个满足条件,就返回true,否则返回false。
8.every
用于遍历数组,只有当所有的元素返回true,才返回true,否则返回false。
9.find()
方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
。
对象简写
10. 在对象中,如果属性名和变量名相同的话,可以省略一个
let name = 'zs'
let age = 18 // 在对象中,如果属性名和变量名相同的话,可以省略一个 // 在对象中,方法也可以简写
let obj = { name: name, age: age }
let obj = { gender: '男', name, age }
11.方法也可以简写, 不写function
// 在对象中的方法可以简写 // 不写function
let obj = {
// say: function () {}
say(n1) { console.log(n1) },
goodBye() { console.log('byebye') }
}
//调用
obj.say(1)
obj.goodBye()
箭头函数
var fn = (x, y) => { console.log(x + y); }
Promise
是异步编程的一种解决方案,比传统的解决方案callback更加的优雅
类(class)
字符串新方法
startsWith() 是否以谁开头 布尔类型
endsWith() 是否以谁结尾
includes() 是否包含
![](https://img2020.cnblogs.com/blog/1562443/202005/1562443-20200515180316394-1239654034.png)
ES7新增2个
1.includes()
函数用来判断一个数组是否包含一个指定的值,如果包含则返回 true
,否则返回false
。
2.指数运算符 2**10 结果为1024 等同于Math.pow(2, 10);
ES8-ES10
async/await
Array.prototype.flat(),数组降维。
var arr1 = [1, 2, [3, 4]];
arr1.flat();
// [1, 2, 3, 4]
参考地址:https://juejin.im/post/5ca2e1935188254416288eb2