面试题答案
一键面试NaN > 5
- 结果:
false
- 比较规则:
NaN
与任何值(包括它自身)进行比较,结果都为false
。这是因为NaN
表示“不是一个数字”,它不遵循常规的数字比较规则。
- 结果:
Infinity < Infinity
- 结果:
false
- 比较规则:
Infinity
表示正无穷大,它是一个特殊的数值。两个Infinity
进行比较时,因为它们表示的都是无穷大,所以Infinity
并不小于自身,结果为false
。
- 结果:
-Infinity < Infinity
- 结果:
true
- 比较规则:
-Infinity
表示负无穷大,Infinity
表示正无穷大,按照常规的数值大小概念,负无穷大小于正无穷大,所以结果为true
。
- 结果:
'abc' < NaN
- 结果:
false
- 比较规则:首先,
'abc'
会尝试转换为数字,由于无法转换为有效的数字,会得到NaN
。然后NaN
与NaN
进行比较,根据NaN
的比较规则,结果为false
。
- 结果:
在严格模式和非严格模式下,这些比较规则和结果没有差异。因为这些特殊值(NaN
、Infinity
等)的比较规则是JavaScript语言规范所定义的基础行为,不受严格模式和非严格模式的影响。