`

javascript 之 undefined

阅读更多
一、用法

undefined 关键字有两种用法:

1. 如果一个 javascript 对象不具有某个属性,则返回 undefined。(反之不成立)

//

var a = {};

console.log(a.name); // undefined

console.log(a.name === undefined); // true

//


但是 a 并不拥有 name 属性:

//

a.hasOwnProperty('name'); // false

//



2. 用来判断 一个 javascript 对象某个属性的值 是否为 undefined

var a = {};


如果对 a 使用赋值操作符(=)赋值为 undefined 时,则 a 将拥有这个属性。

//

a.name = undefined;   

a.hasOwnProperty('name'); // true

console.log(a.name === undefined);  // true

//



二、举例


var myObject = {
    foo: "bar",
    func: function() {
        var self = this;
        
        // bar
        console.log("outer func:  this.foo = " + this.foo);
        
        // bar
        console.log("outer func:  self.foo = " + self.foo);


        (function() {
            //直接报错,因为 foo 未定义就使用。
            //console.log("inner func:  foo = " + foo); 
            
            //读取this的foo属性。如果没有则返回 undefined.            
            console.log("inner func:  this.foo = " + this.foo); 
            
            // bar
            console.log("inner func:  self.foo = " + self.foo);
        }());

    }
};


myObject.func();










三、与 delete 对比

undefined 是用来判断 javascript 对象某个属性的值 是否 为 undefined,
但不能判断 javascript 对象 是否拥有 某个属性。
如果 javascript 对象 不拥有某个属性,也会返回 undefined 。
用来将某属性的值设置为 undefined,而不能用来删除某个属性。


delete 是用来删除 某个属性的:

//

var a = {};

a.name = undefined;

a.hasOwnProperty('name'); // true

delete a.name;

a.hasOwnProperty('name'); // false


//








—————————————

javascript 函数基础系列文章

1、JavaScript之变量的作用域
2、javascript之变量类型与变量声明及函数变量的运行机制
2.1、javascript 之 undefined
3、javaScript之function定义
4、javascript之function的prototype对象
5、javascript之function的(closure)闭包特性
6、javascript之function的this   
7、javascript之function的apply(), call()



___________


javascript 面向对象编程系列文章:

    1、javaScript之面向对象编程
    2、javascript之面向对象编程之属性继承
    3、javascript之面向对象编程之原型继承 
   

-




-转载请注明出处:
http://lixh1986.iteye.com/blog/2317065





-
引用:
http://stackoverflow.com/questions/14967535/delete-a-x-vs-a-x-undefined




分享到:
评论

相关推荐

    理解javascript中undefined和null的区别

    理解javascript中undefined和null的区别

    写出更好的JavaScript之undefined篇(上)

    在JavaScript编程中,`undefined`是一个特殊的值,用于表示变量尚未被赋值或者对象的属性不存在。本文主要讨论如何正确地检查和使用`undefined`,以及提高代码的兼容性和容错性。 首先,当我们想要检查一个变量是否...

    【JavaScript源代码】JavaScript之不可靠的undefined.docx

    在JavaScript编程语言中,"undefined"是一个特殊值,表示变量未声明或已声明但未赋值。然而,正如文档标题和描述所指出的,JavaScript中的`undefined`并不总是可靠的,这意味着它并不总是代表我们期望的“未定义”...

    JavaScript程序设计-JavasScript类型之undefined.pdf

    这篇文档《JavaScript程序设计-JavasScript类型之undefined.pdf》主要探讨的是JavaScript中的Undefined类型及其使用。 首先,Undefined类型只有一个值,那就是undefined。当我们在JavaScript中使用`var`关键字声明...

    JavaScript判断undefined类型的正确方法

    在JavaScript编程中,判断一个变量是否为undefined是一个基础但非常重要的操作。由于JavaScript是一种弱类型的语言,所以在进行变量比较时,如果不注意类型安全,就很容易出现意外的错误。在早期的JavaScript代码中...

    JavaScript中undefined和null的区别

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

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

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

    Javascript中判断一个值是否为undefined的方法详解

    但是在javascript中,怎么检查一个值是否为undefined呢? 简单来说,在现代浏览器中,你可以安全的比较变量是否为undefined if (name === undefined) {...} 一些人反对直接使用undefined变量进行比较,因为在旧的...

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

    在JavaScript中,`undefined`是一个特殊的值,它代表了一个变量被声明但未被赋值的情况,或者是尝试访问一个对象上不存在的属性时的结果。深入理解`undefined`对于编写健壮的JavaScript代码至关重要。 首先,我们要...

    JavaScript中猎取纯正的undefined的方法_.docx

    在JavaScript编程中,正确理解和获取`undefined`值是至关重要的,因为这直接影响到代码的健壮性和可维护性。在某些情况下,我们可能需要确保一个变量确实为`undefined`,而不是其他任何值,以进行有效的条件检查。...

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

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

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

    在JavaScript编程中,undefined和null是两种特殊的值,它们在处理变量和对象时扮演着重要的角色。尽管它们都表示“没有值”的概念,但它们之间存在着一些关键的区别。本文将深入探讨undefined和null的含义、用途以及...

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

    与 `undefined` 相比,`null` 更倾向于表示“有意为之的空值”。在逻辑上,`null` 和 `undefined` 被认为是相等的,因为它们在相等运算符 `==` 下比较会返回 `true`: ```javascript console.log(null == undefined)...

    javascript 中null和undefined区分和比较

    在JavaScript编程语言中,`null`和`undefined`是两种非常重要的值,它们在很多情况下容易引起混淆。本文将深入探讨两者之间的区别和比较。 首先,`undefined`是一种特殊的值,它代表变量已经被声明但没有赋值。在...

    Javascript类型系统之undefined和null浅析

     一般的程序语言,表示空的只有null,但javascript的设计者Brendan Eich却设计了一个undefined,这无疑增加了程序复杂度,但这样做也是有一定原因的。本文将详细介绍javascript中的undefined和null 历史原因  ...

    javascript中undefined的本质解析

    `undefined`通常表示变量未声明或函数无返回值,而`null`则是一个明确的值,表示“有意为之的空值”。在编程时,使用`null`来表示一个对象预期应为空的情况,可以避免因变量未定义而导致的问题。总的来说,理解和...

    JavaScript null和undefined区别分析

    一时间不好回答,特别是... null 是 JavaScript 保留关键字。 null 参与数值运算时其值会自动转换为 0 ,因此,下列表达式计算后会得到正确的数值: 表达式:123 + null 结果值:123 表达式:123 * null 结果

    head first JavaScript源码

    变量是存储数据的容器,JavaScript支持多种数据类型,如字符串、数字、布尔值、null、undefined、对象和Symbol等。控制结构是程序流程的重要组成部分,包括条件语句(如if...else)和循环(如for、while和do...while...

    JavaScript中Null与Undefined的区别解析

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

Global site tag (gtag.js) - Google Analytics