Javascript 运算符
-
??非空运算符b = (a ?? 3) 如果a不是undefined或者null 就返回该值,如果是就返回??后面的值
-
??=空赋值运算符
var x = null
var y = 5
console.log(x ??= 5) // 5 只有x为空才会赋值
console.log(x) // 5
-
?.链判断运算符 -
?:三元运算符 -
...扩展运算符
function fn(...arg){
console.log(arg);//[1,2,3,4,5]
console.log(...arg);//1,2,3,4,5
}
fn(1,2,3,4,5)
1、代替apply
Math.max.apply(null,[1,3,5])
Math.math(...[1,3,5])
2、合并数组
var newArr = [...arr1, ...arr2]
3、解构赋值
var [a, ...b] = [2,3,4,5,6];
console.log(a, b); //2 [3,4,5,6]
var [c, ...d] = [2];
console.log(c, d); //2 []
var [...x,y] = [2,3,4,5,6];
对象的扩展运算符
var {a, b, ...c} = {a : 12, b : 23, d : 34, c : 345}
//c ->{d:34,c:345}
类数组转化为数组
var i = [... 'abcd'] // [a,b,c,d]
4、只有一个数组成员,严格等于undefined,默认值才会生效
let [x = 1] = [undefined]; x // 1
let [x = 1] = [null]; x // null
-
字符串扩展方法
.includes()是否包含.startsWith()是否以什么开始.endswith()是否以什么结束 -
Object.assign(target1, target2, targetN)复制/合并对象 -
Object.is(value1,value2)比较两个值是否相等 -
Set是一种类似于数组的数据结构特性:元素唯一性,不允许重复的元素、使用add增加重复元素,会被忽略
用途:元素去重,数据存储
const arr = [1,3,1,1,1]
const set = new Set(arr);
set.add(1).add(1);
console.log(set.size)//2
const newArr = Array.from(set);
console.log(newArr)//[ 1, 3 ]
Map类似Object,以key,value形式存储数据
区别:Map键不会隐式转换成字符串,而是保持原有的类型
-
Marh.pow(2,10)指数运算 2的10次方 -
Object.values(obj)将对象的值以数组的形式返回 -
Object.entries(obj)将对象以键值对二维数组返回,可以使用for...of...遍历 -
padStart,padEnd在字符串前,或者后面追加指定字符串
- targetLength:填充后的目标长度
- padString:填充的字符串
- 填充的字符串超过目标长度,会在规定长度时被截断
- 填充字符串太短会以空格填充
- padString未传值,以空格填充