继续之前的,改说到object类型的了:Object 的每个实例都具有下列属性和方法。
constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)
就是Object()。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例
的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例
如:o.hasOwnProperty("name"))。
isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型(第5 章将讨论原
型)。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in 语句
(本章后面将会讨论)来枚举。与hasOwnProperty()方法一样,作为参数的属性名必须以字符
串形式指定。
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值
相同。
这些方法虽然平时用得不多,但是都是一些非常有用的方法。
基本类型之后就是运算,先来看看之前觉得很熟悉的递增和递减吧。
递增和递减操作符遵循下列规则。
在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,再执行加减1 的操作。字
符串变量变成数值变量。
在应用于一个不包含有效数字字符的字符串时,将变量的值设置为NaN(第4 章将详细讨论)。
字符串变量变成数值变量。
在应用于布尔值false 时,先将其转换为0 再执行加减1 的操作。布尔值变量变成数值变量。
在应用于布尔值true 时,先将其转换为1 再执行加减1 的操作。布尔值变量变成数值变量。
在应用于浮点数值时,执行加减1 的操作。
在应用于对象时,先调用对象的valueOf()方法(第5 章将详细讨论)以取得一个可供操作的
值。然后对该值应用前述规则。如果结果是NaN,则在调用toString()方法后再应用前述规
则。对象变量变成数值变量。
例如:
var s1 = "2"; var s2 = "z"; var b = false; var f = 1.1; var o = { valueOf: function() { return -1; } }; s1++; // 值变成数值3 s2++; // 值变成NaN b++; // 值变成数值1 f--; // 值变成0.10000000000000009(由于浮点舍入错误所致) o--; // 值变成数值-2
这些东西都是很基本的东西,但是因为很多不常使用所以很多都不太熟悉,但是在某些地方这些又都是非常重要的东西,所以,尽管不常用,但是还是需要熟悉。