0403 手打基础丸

151 阅读2分钟

手打基础丸 🧆 => 精选基础知识,经过多道工序精心制作而成,口感鲜嫩多汁。一口咬下,香气四溢,加上传统前端风味,令人回味无穷...... 助力食用者厚积薄发,夯实根基进阶上层。

今天是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