`

undefined null 区别

阅读更多

null :表示无值;
undefined : 表示一个未声明的变量,
                或已声明但没有赋值的变量,
                或一个并不存在的对象属性。

==运算符将两者看作相等。如果要区分两者,要使用===或typeof运算符。
使用if (!object){}两者就都包含了

补充:2006.12.6
var obj = "aaa";
var nullobj;

 if (obj == null || obj == undefined || (!obj) ){
  alert("obj is null");
 }

 if (nullobj == null){
  alert("obj is null");
 }

 if (nullobj == undefined){
  alert("obj is undefined ");
 }

 if ( !nullobj ){
  alert("! obj ");
 }

关于undefined和"undefined的补充(2007/1/30):

    JScript中用于表示未定义的undefined 标识符到底是表示什么未定义?它和"undefined" (包括"在内)又有什么区别和联系呢?为什么有的时候可以使用undefined 来和变量做比较,而有的时候又不行呢?

    underfined"undefined" 的区别大家一眼就能看出来。在一般的认知下,我们认为undefined 是JScript提供的一个"关键字",而"undefined" 却毫无悬念的就是一个字符串,只是引号内的内容长得和undefined 一个样。undefined"undefined" 的区别虽然是十分明显的,但它们的联系也是紧密的。

    仔细阅读JScript手册,其实这个underfined是一个"已定义"的Global值,而不是它的字面意义所表达的未定义。我们看下面这个代码示例,很有趣:

< script  language ="javascript" >
alert(undefined);
alert(variable);
</ script >


    执行的结果是:
    undefined.png

    我们稍微修改一下上面的代码,添加一个typeof调用来看看:   

< script  language ="javascript" >
alert(typeof undefined);
alert(typeof variable);
</ script >


    这下结果应该是什么呢?显示"object""undefined" 吗?当然不是了,两个alert调用都将显示"undefined"

    所以undefined 是脚本引擎定义的一个常量,它在脚本引擎初始化完毕后存在。它的实际作用是用来表示一个已定义的变量的为初始化状态(uninitialized) ,比如var i;,这时这个i的值就是undefined ,而i是实实在在define了的,只是未初始化。这时我们就可以写这样的表达式来对i做判断,比如if ( i == undefined )。如果从未在代码中出现过的变量被使用,这时的未定义的概念就是不undefined 所描述的未初始化了,而是说明该变量完全未被登记到脚本引擎的上下文中。使用类似if ( abc == undefined )的语句,将得到类似上图中的第二个错误提示。

    在实际使用中,如果使用typeof来判断变量是否未定义,是可以完全兼容未定义(undefined)未初始化(uninitialized) 两种情况的,只是很多时我不喜欢使用 if ( typeof xxx == 'undefined' ) 这样的写法,因为literal的字符串容易拼写错误,对用习惯了的强类型语言的角度来看也显得不专业。

分享到:
评论

相关推荐

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

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

    理解javascript中undefined和null的区别

    理解javascript中undefined和null的区别

    null和undefined的区别

    null和undefined的区别 null :表示无值;undefined : 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。==运算符将两者看作相等。如果要区分两者,要使用===或typeof运算符。使用if (!...

    JavaScript中undefined和null的区别

    JavaScript中undefined和null的区别 JavaScript两个表示”无”的值:undefined和null。我在平时只是null用的多一点,undefined只是在报错中经常遇到。下面针对这两个数据类型的异同做一下详细的比较。 1.undefined和...

    JS 中如何判断 undefined null.rar

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

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

    js判断undefined类型 今天使用showModalDialog打开页面,返回值时。当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断  var reValue=window.showModalDialog(“”,””,””); ...

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

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

    javascrit中undefined和null的区别详解.docx

    ### JavaScript中undefined与null的区别详解 #### 一、概述 在JavaScript编程中,`undefined`与`null`是非常常见的两种基本数据类型。虽然它们都表示某种形式的“无”或“空”,但在实际使用中两者有着本质的区别...

    深入解析JavaScript中的`undefined`与`null`:探索它们的异同

    理解undefined和null的区别对于JavaScript开发者来说至关重要。它们在表示“没有值”的概念时有着不同的用途和含义。通过本文的详细介绍,你应该能够理解undefined和null的工作原理,并能够在未来的项目中灵活运用...

    JavaScript中Null与Undefined的区别解析

    在JavaScript编程语言中,Null和Undefined是两种不同的原始值,它们在特定场景下有特定的含义,有时也会引起初学者的困惑。理解这两者之间的差异是编写健壮JavaScript代码的关键。 首先,Undefined类型是一个特殊的...

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

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

    JavaScript null和undefined区别分析

    == undefined 那么这两者到底有啥区别呢? 请听俺娓娓道来… null 这是一个对象,但是为空。因为是对象,所以 typeof null 返回 ‘object’ 。 null 是 JavaScript 保留关键字。 null 参与数值运算时其值会自动转换...

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

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

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

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

    JavaScript undefined及null区别实例解析

    在JavaScript中,`undefined` 和 `null` 是两种特殊的值,它们虽然在某些情况下表现出相似的行为,但在语义上有着明显的区别。理解这两者之间的差异对于编写健壮的JavaScript代码至关重要。 首先,`undefined` 是一...

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

    当声明一个变量未赋值一个变量没有声明的时候都是undefined类型的数据js变量在使用之前也必须先进行声明使用了一个未定义的变量x就会报错。如何判断一个变量是否能用: 第一种方法:if(typeof x==’undefined’)var...

    详解JavaScript中undefined与null的区别

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

    javascript中undefined与null的区别

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

Global site tag (gtag.js) - Google Analytics