浅析JavaScript中的对象类型Object
程序员文章站
2023-11-23 15:17:22
ecmascript中的对象其实就是一组数据和功能的集合。
ecmascript中object是所有对象的基础。
理解:object类型是所有它的实例的基础,换句话说,...
ecmascript中的对象其实就是一组数据和功能的集合。
ecmascript中object是所有对象的基础。
理解:object类型是所有它的实例的基础,换句话说,object类型所具有的任何属性和方法也同样存在于更具体的对象中。
object的实例都具有以下属性和方法
1.constructor:保存着用于创建当前对象的函数
2.hasownproperty(propertyname):用于检查给定的属性在当前对象实例中(而不是原型中)是否存在。其中作为参数的属性名必须以字符串指定
3.isprototypeof(object):用于检查传入的对象是否是另一个对象的原型
4.tolocalstring():返回对象的字符串表示,该字符串与执行环境相对应
5.tostring():返回对象的字符串表示
6.valueof():返回对象的字符串、数字或布尔值表示。通常与tostring()方法的返回值相同
全局对象
全局对象在javascript中有着重要的用途: 全局对象的属性是全局定义的符号, javascript程序可以直接使用,当解释器启动时,它将创建一个新的全局对象,并给它一组定义的初始属性:
全局属性,比如undefined, infinity
全局函数,比如parseint()
构造函数,比如data(),
全局对象,比如math和json
包装对象
看这样一个例子:
var s = "hello world!"; var word = s.substring(s.indexof(" ")+1, s.length);
字符串既然不是对象,为什么它会有属性呢?只要引用了字符串s的属性,javascript就会将字符串值通过调用new string(s)的方式转换成对象,
同字符串一样,数字和布尔值也有相应的方法。其他类似的包装类:
number object string object boolean object function object regexp object error syntaxerror referenceerror typeerror …
不可变的原始值和可变的原始对象引用
原始值是不可改变的,原始值的比较是值比较, 对象的比较并非值比较:即使两个对象包含同样的属性以及相同的值,他们也不是相等的。我们通常将对象称为引用类型,对象的值都是引用,对象的比较也是引用的比较,当且仅当他们引用同一个基独享,他们才相等;
原始值是不可改变的,原始值的比较是值比较, 对象的比较并非值比较:即使两个对象包含同样的属性以及相同的值,他们也不是相等的。我们通常将对象称为引用类型,对象的值都是引用,对象的比较也是引用的比较,当且仅当他们引用同一个基独享,他们才相等;