Null 和未知是JavaScript 中最常见的null 问题。
null 和 undefined 的定义
JavaScript原始版本区分如下:
null 是一个表示“无”的对象,转换为数字后为0。 Undefined 是表示“无”的原始值,并转换为NaN 形式的数字。下图比较了上面的两个概念。
为什么会出现这个问题
这个与JavaScript语言特性有关。
当JavaScript 第一次出现时,它通常被定义为一种解释性语言。这种语言的一个特点是不需要编译,可以直接解释使用。
同时,JavaScript 被设计为弱类型语言,以增加语言的灵活性。
也就是说,如果上面定义了null,那么它可能会直接对应一个整数类型,这样在代码运行时会造成很多混乱。
对于编译型语言和强类型语言来说,这是一个非常令人头痛的问题。
例如,在Java中,如果需要使用字符串string,就必须先定义字符串。您可以将null 分配给字符串或初始化某些字符,但您必须定义它们。
否则后面引用的时候会报错。 JavaScript 不要求您这样做。如果此时直接使用该变量而不定义它,您将收到未定义的错误。
在强类型语言中,如果将变量定义为字符串,则该变量只能存储字符串。如果您存储任何其他类型,编译器将报告错误。 JavaScript 尝试自动转换类型,这会造成很多混乱。例如,如果变量存储1,则它可以是整数1,也可以是布尔值。
如何判断
您可以使用_.isNil() 函数来确定这一点。
检查该值是否为null 或未定义。
请注意,该函数无法确定输入值是否为''。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。