手打基础丸 🧆 => 精选基础知识,经过多道工序精心制作而成,口感鲜嫩多汁。一口咬下,香气四溢,加上传统前端风味,令人回味无穷...... 助力食用者厚积薄发,夯实根基进阶上层。
今天是JavaScript专题,清明假期快乐😀
JS 如何安全获取undefined值?
使用void运算符 let name = void 0
因为在较低版本的浏览器中可以重定义,所以获取值可能并不是真正的undefined,所以需要一种确保可以获取到真正undefined的方法
typeof NAN的结果?
是number,NAN总的来说可以理解为非正常number
isNaN和Number.isNaN区别?
isNaN会先将传入的参数转换为数字再检查是否为NaN
Number.isNaN 不会进行参数转换,直接判定参数本身是否为NaN
==操作符的强制类型转换规则是?
null和undefined仅与自身相等时true
boolean类型会转换为数字后进行比较
console.log(true == 1 )//true
console.log(false == 0)//false
console.log(true == 2)//false
--字符串和数字比较,会将字符串转换为数字再比较
--对象和原始类型(字符串、数字、布尔)比较,会调用共toPrimitive方法将对象会转化为原始类型再进行比较
--符号Symbol和其他类型,只能和同类型比较,其他类型均为false
--空字符串会转换为0
--对象的比较会先转换为原始类型再比较
Object.is()与 == 和 === 区别?
==:比较时如果两侧类型不一致,则会先进行转换之后再进行比较
=== : 比较时如果两侧类型不一致也不会进行类型转换,严格类型比较
Object.is() : 大多数情况下等同于===
特殊情况:+0和-0返回false,两个NaN返回true