7.运算符的扩展
(1)链判断运算符?.有三种写法。
解决对象属性多层级调用需要先判断对象是否存在的问题;
语法:用?号标识可选,
obj?.prop?.name // 对象属性是否存在
obj?.[expr] // 同上
func?.(...args) // 函数或对象方法是否存在
(2)运算符的扩展(好像会报错,可能还没兼容)
||=、&&=、??=相当于先进行逻辑运算,然后根据运算结果,再视情况进行赋值运算。它们的一个用途是,为变量或属性设置默认值。
(3)null和undefine的判断 ??
Let color=option.color || 'red'; //这样写会有嗯题,如果color为空,或是0,也会去red;
Let color = option.color ?? 'red'; //只有color为null,undefine的时候才返回red;
8.数值的新增
(1)分隔符_,区分长度较大的数字
(2)Number.isFinite():检查一个数值是否为有限的,返回布尔值;
(3)Number.isNaN():用来检查一个值是否为NaN。
(4)的Number.parseInt():取整
(5)Number.parseFloat():取浮点类型
(6)Number.isInteger()用来判断一个数值是否为整数
Math.trunc方法用于去除一个数的小数部分,返回整数部分。
Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。返回+1,-1,0,-0,NaN
还有很多数学方法