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://stackoverflow.com/questions/14967535/delete-a-x-vs-a-x-undefined