in 运算符可以用来测试一个属性的存在性。运算符的左边应该是属性的名字(字符串形式),而运算符的右边应该是要测试的对象,例如
if("x" in o) o.x=1;
然而in运算符也不是常常用到,因为,如果查询并不存在的一个属性,会返回undefined的值。因此,上面的代码可以这样写:
//if the property x exist and is not undefied ,set it
if(o.x!==undefiend) o.x =1;
7.2.3删除属性
可以用delete运算符来删除一个的对象的属性;
delete book.chapter2;
7.4.1 constructor属性
在javascript中,每个对象都有一个constructor属性,它引用了初始化这个对象的构造函数,例如Date()的构造函数创建了一个对象d,d.construcotor属性引用Date:
var d = new Date();
d.contructor == Date;
constructor属性有助于确定一个对象的类型,
if((typeof o =="object")&&(o.constructor ==Date))
instanceof 运算符检查constructor属性的值,因此上面的代码可以写成:
if((typeof o =="Object" )&& (o instanceof Date))
7.4.2 toString()对象
7.4.3 toLocaleString()对象
7.4.4 valueOf()方法
7.4.5 hasOwnProperty()
7.4.6 propertyIsEnumerable()方法
7.4.7 isPrototypeOf()方法
var o = {}
Object.prototype.isPrototypeOf(o);//true
Object.isPrototypeOf(o);//false
7.5数组
数组是一个i有序的、值的集合。每个值都叫做一个元素,每个元素在数组中都有一个数字化的位置,叫做小标(index).
var empty = {}; //an array with no elements