ES6标准
- let 不能重复声明
箭头函数
let fun = ()=>{}
只有一个参数()省略 let t = a=>{return a2}
如果只有一条语句就可以省略{} let t = a =>a2
参数扩展
存放多个参数
function show ( a, b ,...c){
};
show(1,2,3,4,5)
参数扩展三个点点,
a存1,b存2,
c存3,4,5必须是最后一个
展开数组
let arr=[1,2,3]
show(...arr)
设置默认参数
function show( a, ,b=5,c = 90) {
}
b默认传5,c=90 调用show(99)即可
数组
结构赋值 json也可以结构赋值
let [a,b,c]=[1,2,3]
结构必须对应,就是a=1,b=2,c=3
对象的解构赋值
let {a,b}={a:1,b:2}
新方法
映射 map
汇总 reduce
过滤器 filter
迭代(循环) forEach
排序 sort
字符串
let str=`www.csdn.net`
新方法
判断内容开头 startsWith
if(str.startWith('http')){ #判断字符串开头内容是否http
}
判断内容尾部 endsWidth
if(str.endsWidth('.doc')){}
字符串连接
使用``反单引号
let a = `www.#{b},#{c}.com`
消除空格包括tab或者换行符号 trimStart
str.trimStart() #消除字符串前面的空格
str.trimEnd() #消除后面的空格
满足正则表达式的内容 matchAll
过滤正则表达式的内容
let string= str.matchAll(rule)
正则表达式对象
RegExp 构造函数
数值
Number对象的方法
新方法
转换二进制 八进制的转换成为十进制 其中第二个不区分大小写
Number('0b100001') #0b开头的是二进制 #是数字的0
Number('0o105401') #0b开头的是二进制 #是数字的0和字母的o
检查一个数值是否为有限的(finite),即不是 Infinity。
Number.isFinite(123) 返回就是true
Number.isFinite(NaN) 返回就是false
检查一个数值是否未NaN
Number.isNaN()
转为整数
Number.parseInt()
Number.isparseInt() #判断是否是整数
转发为双精度
Number.parseFloat()
Number.isparseFloat() #判断是否是数 #存在精度问题
Math对象的方法
新方法
截取整数
Math.trunc(3.5)
判断正数负数还是0
Math.sign()
参数为正数,返回+1;
参数为负数,返回-1;
参数为 0,返回 0;
参数为-0,返回-0;
其他值,返回 NaN;
计算立方根
Math.cbrt()
面向对象
class #类名字 {
constructor (name,pass){ #构造
this.name=name;
this.pass=pass;
}
#方法名 (){}
}
继承
class #类名 extends #继承的类名 {
constructor(a,b,c){
super(a,b) #给继承的类的参数
this.c=c
}
}
Promise #异步交互
Promise本身是同步的立即执行函数, 当在executor中执行resolve或者reject的时候, 此时是异步操作, 会先执行then、catch等,当主栈完成后,才会去调用resolvereject中存放的方法执行,打印p的时候,是打印的返回结果,
一个Promise实例。
console.log('script start')
let promise1 = new Promise(function (resolve) {
console.log('promise1')
resolve()
console.log('promise1 end')
}).then(function () {
console.log('promise2')
})
setTimeout(function(){
console.log('settimeout')
})
console.log('script end')
// 输出顺序: script start->promise1->promise1 end->script end->promise2->settimeout
Async/Await
await等于返回一个promise
async function async1(){
console.log('async1 start');
await async2();
console.log('async1 end')
}
async function async2(){
console.log('async2')
}
console.log('script start');
async1();
console.log('script end')
// 输出顺序:script start->async1 start->async2->script end->async1 end