`

区分JS中的undefined,null,"",0,false

 
阅读更多

总是被JS中的undefined,null,"",0和false耍的晕头转向,索性把它们汇总起来总一个比较。

这几个家伙都是JavaScript中的"空值"和"假值",除了boolean值本身就是true和false这两种情况外,其它数据类型的"空值"主要是undefined和defined这两大类。这些空值的类型分别是

 

 typeof(undefined) == 'undefined'
 typeof(null) == 'object'
 typeof("") == 'string'
 typeof(0) == 'number'
 typeof(false) == 'boolean'

 

这些值的比较

值相等的:
alert(0 == ''); //true
alert(0 == false); //true
alert(false == ''); //true
alert(null == undefined); //true
值不等的:
alert(0 == undefined); //false
alert(0 == null); //false
alert(false == null); //false
alert(false == undefined);//false
alert('' == null); //false
alert('' == undefined); //false
这五个值作!运算,结果全为:true
alert(!0); //true
alert(!false); //true
alert(!undefined); //true
alert(!null); //true
alert(!''); //true

 

 共同点:这五个值作!运算,结果全为:true(说明这些数值都是其对应数据类型上的无效值或空值),在if语句中做判断,都会执行false分支。

 不同点

1、null和undefined:虽然null的类型是object,但是null不具有任何对象的特性,就是说我们并不能执行null.toString()、null.constructor等对象实例的默认调用。null和undefined有最大的相似性,但在数字运算时,3+ null结果为:3;3+ undefined结果为:NaN。

2、" "、0和false虽然在if语句表现为"假值",可它们都是有意义数据,只是被作为了"空值"或"假值",因为:"".toString(),(0).toString()和false.toString()都是合法的可执行表达式。

 

需要注意的是这些值在转换为String时的差异是比较大的,它们到String的转换关系是:
 String(undefined) -> "undefined"
 String(null) -> "null"
 String("") -> ""
 String(0) -> "0"
 String(false) -> "false"

 

分享到:
评论

相关推荐

    区分JS中的undefined,null,"",0和false

    在JavaScript中,有几种特殊的值,它们是`undefined`、`null`、空字符串`""`、数字`0`和布尔值`false`。尽管它们在某些情境下被视为“假值”,但它们各自有着不同的含义和用途。在逻辑判断中,这些值在`if`语句的...

    区分JS中的undefined,null,,0和false

    在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个”空值”或”假值”,比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,boolean类型的假值false等等。在JavaScript中也有很多种的...

    JS 中如何判断 undefined null.rar

    在JavaScript(JS)编程中,`undefined` 和 `null` 是两种不同的特殊值,它们各自表示不同的含义。理解和正确地判断这两个值对于编写健壮的JavaScript代码至关重要。在这篇文章中,我们将深入探讨如何在JavaScript中...

    Javascript中的false、0、null、undefined和空字符串对象[归类].pdf

    在JavaScript中,`false`、`0`、`null`、`undefined`和空字符串`""`是五个特殊的值,它们在编程中扮演着不同的角色。理解它们的类型、等价性和在条件语句中的行为是至关重要的。 首先,让我们看看它们的类型: - `...

    详解JavaScript中undefined与null的区别

    一、相似性在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。 代码如下:var a = undefined;var a = null; 上面代码中,a变量分别被赋值为undefined和null,这两种写法几乎等价。undefined和...

    JavaScript中Null与Undefined的区别解析

    JavaScript中Null与Undefined的区别解析主要涉及两种特殊数据类型:Null和Undefined。这两种类型是JavaScript中的原始类型,它们经常会使开发者混淆,尤其是在变量的赋值和比较操作中。本文将通过多个实例,详细解释...

    JavaScript中的null和undefined用法解析

    在JavaScript编程语言中,`null` 和 `undefined` 是两个重要的概念,它们都用来表示某种“不存在”或“没有”的状态,但它们之间存在着微妙的差异。了解这些差异对于编写健壮的JavaScript代码至关重要。 首先,`...

    Javascript类型系统之undefined和null浅析_.docx

    JavaScript 类型系统中的 `undefined` 和 `null` 是两种特殊的原始值,它们分别代表不同的概念。`undefined` 主要用于表示变量已经声明但未被赋值的情况,而 `null` 则是一个特意设置的值,通常用来表示一个“空”的...

    JS中判断null、undefined与NaN的方法

    在JavaScript编程中,正确地判断null、undefined和NaN是很重要的,因为这三种值在逻辑上和运算时都有一些特殊行为。本文将详细介绍如何在JS中检测这三种特殊值。 首先,null和undefined都是表示“无”的值。null是...

    JavaScript中undefined和null的区别

    在JavaScript编程语言中,`undefined` 和 `null` 是两种特殊的数据类型,它们都表示“没有值”,但具有不同的含义和使用场景。了解这两者的差异对于编写健壮的JavaScript代码至关重要。 首先,让我们来明确两者的...

    javascript中undefined与null的区别

    在JavaScript编程语言中,`undefined` 和 `null` 是两种不同的原始类型,它们虽然在某些情况下表现出相似的行为,但有着本质的区别。理解这两者的差异对于编写健壮的JavaScript代码至关重要。 首先,`undefined` 和...

    JavaScript undefined及null区别实例解析

    在JavaScript编程语言中,`undefined` 和 `null` 是两种特殊的值,它们在某些方面具有相似性,但也存在明显的差异。这两个概念对于理解和编写健壮的JavaScript代码至关重要,特别是对于那些处理变量状态和数据类型的...

    浅谈JavaScript中null和undefined

    在JavaScript中,`null`和`undefined`是两种表示值缺失的概念,但它们之间存在显著的差异。首先,`null`是一个特殊的值,通常用来表示一个预期存在的对象但实际上不存在的情况,比如一个对象引用可能被特意设置为空...

    在JavaScript中学习undefined学习总结.doc

    在JavaScript中,`undefined`与`null`的比较遵循弱类型特性,通过`==`运算符,两者被认为是相等的: ```javascript let prop; console.log(prop == null); // 输出 true let obj = {}; console.log(obj....

    JavaScript基本类型值-Undefined、Null、Boolean

    在JavaScript中,基本类型值的使用和处理非常重要,了解Undefined、Null和Boolean这三种基本类型值,能够帮助开发者更好地编写逻辑判断和数据验证的代码,为编写高质量的JavaScript程序打下坚实的基础。

    JavaScript Undefined,Null类型和NaN值区别

    JavaScript 中的Undefined、Null和NaN是三个特殊的值,经常被混淆和误解,本文将详细介绍这三个值的定义、区别和使用场景。 Undefined类型 Undefined类型只有一个值undefined,它表示变量或函数没有初始化或没有...

    JS中判断null的方法分析

    在JavaScript中,null、undefined、数字零、false以及空字符串都被视为falsy值,在逻辑运算中相当于false。因此,使用`!exp`判断null也会受到其他falsy值的影响。 还有一种错误的方法是使用`typeof`操作符: ```...

Global site tag (gtag.js) - Google Analytics