MST

星途 面试题库

面试题:JavaScript 关系操作符边界条件之数值比较

在JavaScript中,对于关系操作符 '>' 和 '<',当比较 '1' 和 true 时,结果是什么?并解释原因。同时,当比较 null 和 undefined 时,使用 '>'、'<' 和 '==' 分别会得到什么结果,为什么?
31.4万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 比较 '1'true
    • 结果:'1' > truetrue
    • 原因:在JavaScript中,关系操作符 >< 比较不同类型的值时,会先进行类型转换。true 会被转换为数字 1'1' 会被转换为数字 1。但在比较 '1' > true 时,由于 true 先被转换为数字 1,而字符串和数字比较时,字符串会被转换为数字,所以 '1' 转换为数字 1,此时比较 1 > 1false,但由于比较规则,先比较字符串和布尔值,字符串 '1' 在这种比较规则下被认为大于 true 转换后的 1,所以 '1' > truetrue。而 '1' < truefalse
  2. 比较 nullundefined
    • 使用 >
      • 结果:null > undefinedfalse
      • 原因:nullundefined 在进行大于比较时,null 会被转换为 0undefined 会被转换为 NaN,而 NaN 与任何值比较(包括它自身)结果都为 false,所以 null > undefinedfalse
    • 使用 <
      • 结果:null < undefinedfalse
      • 原因:同理,null 转换为 0undefined 转换为 NaNNaN 参与比较结果都为 false,所以 null < undefinedfalse
    • 使用 ==
      • 结果:null == undefinedtrue
      • 原因:在JavaScript中,nullundefined 有特殊的相等比较规则,它们彼此相等,这是语言设计的特性。而 null === undefinedfalse,因为严格相等(===)要求类型和值都相同,null 类型是 nullundefined 类型是 undefined,类型不同。