各位观众老爷,晚上好!我是今天的主讲人,咱们今天聊聊JavaScript里一个让人头疼,但又不得不面对的小妖精——NaN。 NaN:一个“非数”的哲学思辨 首先,NaN,全称“Not a Number”,听起来就很矛盾。既然“不是一个数字”,那它到底是个啥?JavaScript里,它是一种特殊的数值类型,表示一个本来应该返回数值的操作数未返回数值的情况(这样说是不是更绕了?)。 举个栗子: console.log(0 / 0); // NaN console.log(Math.sqrt(-1)); // NaN console.log(Number(‘abc’)); // NaN console.log(parseInt(‘hello’, 10)); // NaN 这些操作,从数学角度讲,是无意义的,或者说是无法计算出明确的数值结果。所以,JavaScript就用NaN来告诉你:“哥们儿,算不出来啊!” NaN 的“反社会”特性 NaN最让人崩溃的,就是它跟任何值都不相等,包括它自己! console.log(NaN == NaN); // false console.log(NaN …
继续阅读“深入探讨 JavaScript NaN 和 typeof NaN 的特殊行为,并解释 IEEE 754 双精度浮点数标准对 JavaScript 数字类型的影响和限制。”