`
海底的潮水
  • 浏览: 5037 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

undefined,null,NaN的区别

 
阅读更多
var a1;//显示"undefined"
var a8 = undefined;//显示"undefined"
var a2 = true;//显示"boolean"
var a3 = 1;//显示"number"
var a7 = NaN;//显示"number"NaN是一种特殊的number
var a4 = "Hello";//显示"string"
var a5 = new Object();//显示"object"
var a6 = null;//显示"object"null是一种特殊的object
从上面的代码中可以看出未定义的值和定义未赋值的为undefined

2.比较运算
var a1;        //a1的值为undefined
var a2 = null;
var a3 = NaN;
alert(a1 == a2); //显示"true"
alert(a1 == a3); //显示"false"
alert(a2 == a3); //显示"false"
alert(a3 == a3); //显示"false"
从上面的代码可以得出结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。
[补充]
Null 数据类型
在 Jscript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。

包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。

请注意,在 Jscript 中,null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。

Undefined 数据类型
如下情况使返回 undefined 值:

对象属性不存在,
声明了变量但从未赋值。
注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。在以下的代码范例中,假设程序员想测试是否已经声明变量 x :

// 这种方法不起作用
if (x == undefined)
    // 作某些操作
// 这个方法同样不起作用- 必须检查
// 字符串 "undefined"
if (typeof(x) == undefined)
    // 作某些操作
// 这个方法有效
if (typeof(x) == "undefined")
    // 作某些操作
考虑将 undefined 值与null做比较。

someObject.prop == null;
如下情况时,比较的结果为 true,

如果属性 someObject.prop 包含 null 值,
如果属性 someObject.prop 不存在。
要检查一个对象属性是否存在,可以使用新的 in 运算符:
if ("prop" in someObject)
// someObject 有属性 ’prop’

在JavaScript中,null与undefined一度使人迷惑。下面的分析,有利于你更清晰的认知它(或者让你更迷惑):

- null是关键字;undefined是Global对象的一个属性

- null是对象(空对象, 没有任何属性和方法);undefined是undefined类型的值。试试下面的代码:

       document.writeln(typeof null); //return object
       document.writeln(typeof undefined); //return undefined

- 对象模型中,所有的对象都是Object或其子类的实例,但null对象例外:
       document.writeln(null instanceof Object); //return false

- null“等值(==)”于undefined,但不“全等值(===)”于undefined:
       document.writeln(null == undefined); //return true
       document.writeln(null === undefined); //return false

- 运算时null与undefined都可以被类型转换为false,但不等值于false:
       document.writeln(!null, !undefined); //return true,true
       document.writeln(null==false); //return false
       document.writeln(undefined==false); //return false
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    js判断undefined类型,undefined,null,NaN的区别

    JavaScript 中的 undefined、null、NaN 的区别 在 JavaScript 中,undefined、null、NaN 是三个经常被混淆的概念,但它们有着不同的含义和用途。今天,我们将深入探讨这三个概念的区别和应用。 undefined 在 ...

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

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

    JavaScript Undefined,Null类型和NaN值区别

    在JavaScript中,`undefined`、`null`和`NaN`是三个重要的特殊值,它们各自具有独特的含义和用途。理解这些概念对于编写健壮的JavaScript代码至关重要。 **一、Undefined 类型** `undefined`类型只有一个值,即`...

    javascript中的undefined 与 null 的区别 补充篇

    之前软件开发网发不过类似的文章JavaScript null和undefined区别分析JavaScript Undefined,Null类型和NaN值区别先说说undefined: Javascript中的变量是弱类型的(关于这个我想就不用我多解释啦), 所以声明变量的...

    js中 关于undefined和null的区别介绍.docx

    在JavaScript编程语言中,`undefined`和`null`是两种不同的数据类型,它们虽然在某些情况下可能被视为等价,但有着本质的区别。了解这两者的差异对于编写健壮的JavaScript代码至关重要。 首先,`undefined`是一种...

    Javascript 中 null、NaN和undefined的区别总结

    1.类型分析: js中的数据类型有... var a6 = null; var a7 = NaN; var a8 = undefined; alert(typeof a); //显示”undefined” alert(typeof a1); //显示”undefined” alert(typeof a2); //

    javascript类型系统--undefined和null全面了解_.docx

    - `Number(undefined)`:`NaN` - `String(undefined)`:`'undefined'` 而 `null` 被设计为一个空对象指针,虽然 `typeof null` 返回 `'object'`,但这实际上是一个历史遗留问题。`null` 通常用来表示预期的对象但...

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

    `undefined` 在类型转换时,会转换成布尔值 `false`,数值 `NaN`,以及字符串 `'undefined'`。 与 `undefined` 相比,`null` 是一个表示“空值”的关键字,它被设计为一个空对象指针,尽管在 JavaScript 中它的类型...

    js判断undefined类型,undefined,null, 的区别详细解析

    JavaScript中的`undefined`、`null`和`NaN`都是特殊的数据类型,它们在编程中扮演着重要的角色。本文将深入探讨这些概念的区别及其在实际应用中的处理方式。 首先,JavaScript有七种原始数据类型,包括`undefined`...

    详解JavaScript中undefined与null的区别

    在JavaScript中,null和undefined是两个特殊的值,用来表示“无”的状态,但是在实际应用中有微妙的差别和不同的用途。虽然在很多场景中,它们的表现几乎是一致的,但在其他一些情况下,它们则有着明确的区别。 ...

    javascript中undefined与null的区别

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

    JS基础之undefined与null的区别分析

    在JavaScript编程中,经常会遇到关于null与undefined区别的问题,这两者在语言中都有特别的含义,但含义和用途却不尽相同。本文将详细分析null与undefined的区别,并且深入探讨它们的实现原理。 首先,我们知道null...

    Javascript类型系统之undefined和null浅析

    转换为数字时,undefined变成NaN,null变成0;转换为字符串时,undefined变成"undefined",null变成"null"。 总结来说,undefined通常代表变量声明但未赋值的状态,而null则常用于表示预期的对象位置但实际上为空。...

    not-defined:检查是否未定义foo,即undefined,null,空字符串,数组,对象或NaN

    没有定义的检查是否未定义foo,即undefined,null,空字符串,数组,对象或NaN |安装npm install not-defined用法此代码段import notDefined from 'not-defined'if ( notDefined ( foo ) ) { // do something, ...

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

    例如,0、空字符串、null、undefined、NaN、-0和Infinity在转换为Boolean值时都会变为false,而所有其他值都会转换为true。值得注意的是,即使是"false"这个字符串,在JavaScript中通过Boolean()函数转换后结果为...

    javascript类型系统——undefined和null全面了解

    尽管它们在概念上有区别,但在相等比较时,`null` 和 `undefined` 被认为是相等的(`null == undefined` 返回 `true`)。这是因为它们都表示“值的空缺”。 类型转换时,`null` 转换成布尔值也为 `false`,转换成...

Global site tag (gtag.js) - Google Analytics