JS对象包括哪两个部分
对象的成员分为两种:属性和方法
属性(Property):
-封装对象的数据,表示与对象有关的值
-对象名.属性名
方法(Method):
-封装对象的行为,表示对象可以执行的行为或可以完成的功能
-对象名.方法名
Object = Property + Method
JS中的对象类型
1.内置对象/原生对象:指JavaScript语言本身预定义的对象,在ECMAScript标准定义,由所有的浏览器厂家来提供具体实现,由于标准的统一,故这些对象的浏览器兼容性问题不太大
String、Number、Boolean Array、Date、RegExp、Math Error Object、Function Global
2.宿主对象:指JavaScript运行环境(即浏览器)提供的对象,由浏览器厂家自定义提供实现,早期存在较大的兼容性问题,当前其中一些主要的对象已经被大部分浏览器兼容;具体分为如下两大类
(1)BOM对象:Browser Object Model
Window、Navigator、Screen、History、Location
(2)DOM对象:Document Object Model
Document、Anchor、Area、Base、Body、Button、Canvas、Event、Frame、Frameset、IFrame、Image、Link、Meta、Style、Form、Input Button、Input CheckBox、Input File、Input Hidden、Input Password、Input Radio、Input Reset、Input Submit、Input Text、Option、Select、Textare、Table、TableCell、TableRow
3.自定义对象:指由用户创建的对象,兼容性问题需要由编写者注意
如何将JavaScript对象转换成自己需要的对象类型
在对象到数字的转换过程中,它会首先尝试valueOf()方法:
如果对象具有valueOf()方法,后者返回一个原始值,则JavaScript将这个原始值转换为数字(如果需要的话)并返回这个数字。
否则,如果对象具有toString()方法,后者返回一个原始值,则javaScript将其转换并返回
否则,JavaScript抛出一个类型错误异常。
对西那个转换为数字的细节解释了为什么空数组会转换为数字0以及为什么具有单个元素的数组同样会转换成一个数字。数组继承了默认的valueOf()方法,这个方法返回一个
对象
而不是一个原始值,因此数组到数字的转换则调用toString()方法。空数组转换成空字符,空字符串转换成数字0。从上面《JavaScript权威指南》中的解释可以看出,因为obj3重写了对象toString的方法,其中返回了一个数组(对象),而不是原始值,所以这时候无论与2或者字符串比较都会报错。
在js中,我声明1个变量没赋值.那么对象的值是undefined
typeof在两种情况下会返回"undefined":一个变量没有被声明的时候,和一个变量的值是undefined的时候。typeof(q)是undefined是因为q的值是undefined,typeof(t)是undefined是因为t根本没有声明(也没有值)。
还没有评论,来说两句吧...