`

js中undefined,null,NaN的区别

    博客分类:
  • Web
 
阅读更多

 

1.类型分析:

js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。
var a1;
var a2 = true;
var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null;
var a7 = NaN;
var a8 = undefined;

alert(typeof a);   //显示"undefined"
alert(typeof a1);  //显示"undefined"
alert(typeof a2);  //显示"boolean"
alert(typeof a3);  //显示"number"
alert(typeof a4);  //显示"string"
alert(typeof a5);  //显示"object"
alert(typeof a6);  //显示"object"
alert(typeof a7);  //显示"number"
alert(typeof a8);  //显示"undefined"

从上面的代码中可以看出未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。

2.比较运算

var a1;        //a1的值为undefined
var a2 = null;
var a3 = NaN;

alert(a1 == a2); //显示"true"
alert(a1 != a2); //显示"false"

alert(a1 == a3); //显示"false"
alert(a1 != a3); //显示"true"

alert(a2 == a3); //显示"false"
alert(a2 != a3); //显示"true"

alert(a3 == a3); //显示"false"
alert(a3 != a3); //显示"true"

从上面的代码可以得出结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。

 

 

类型比较

 

if (typeof Ajax == "undefined") Ajax = {};
if(array.constructor== Array)
if(array instanceof Array) 

 

isFinite

 

如果 number 是有限数字(或可转换为有限数字),那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。

 

 

[补充]
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 的区别 补充篇

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

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

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

    JavaScript Undefined,Null类型和NaN值区别

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

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

    1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。 代码 代码如下: var a1; var a2 = true; var a3 = 1; var a4 = “Hello”; var a5 = new Object()...

    详解JavaScript中undefined与null的区别

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

    javascript中undefined与null的区别

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

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

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

    JavaScript中的null和undefined用法解析

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

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

    JavaScript 类型系统中的 `undefined` 和 `null` 是两种特殊的原始值,它们分别代表不同的概念。在 JavaScript 中,每个变量都有一个类型,当变量未初始化或引用的对象不存在时,就会出现 `undefined` 或 `null`。 ...

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

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

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

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

    js删除对象/数组中null、undefined、空对象及空数组方法示例

    在JavaScript编程中,有时我们需要处理复杂的数据结构,例如对象和数组,确保它们不包含无效的值,如`null`、`undefined`、空对象或空数组。这些无效值可能会导致错误或不必要的处理开销。本篇文章将深入探讨如何在...

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

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

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

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

Global site tag (gtag.js) - Google Analytics