JavaScript程序开发(十)—js语法之数据类型
2012-05-29 23:46
936 查看
在前面的几篇博客中学习到了ECMAScript-262的几种基本数据类型,接下来要学习的就是复杂的数据类型Object、Array、Date、RegExp、Function、基本包装类型和内置对象7种类型,复杂数据类型又称为引用类型。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。在其他如Java、C#等面向对象的语言中它被称为类(class)。但因为ECMAScript不具备传统的面向对象语言所支持的类和接口等基本结构,因此,在ECMAScript中将其称为类不是很合适。
Object类型
在ECMAScript中,Object是其他一切类型的基类,好比Java中的java.lang.Object。仅仅创建Object类型的实例是没有什么意义的,但关键是理解上面那句话的思想,即Object是js中的基类。Object的每个实例都具有下列的属性和方法:
constructor构造函数—保存用于创建当前对象的函数。如下面的代码实例,对象obj的constructor值是function Object()
hasOwnProperty(propertyName)—用于检测给定的属性是否在当前对象实例中(而不是在对象实例的原型中)。其中,作为参数名称的propertyName必须是以字符串形式指定。
isPrototypeOf(object)—用于检测传入的对象是否是另一个对象的原型。关于原型的知识将在后续博客中介绍。
propertyIsEnumerable(propertyName)—用于检测给定的属性能否使用for-in语句来枚举。与hasOwnProperty()方法一样,作为参数的属性名需以字符串形式指定。
toString()—返回对象的字符串表示;
valueOf()—返回对象的字符串、数值或布尔值表示。
创建Object类型实例的方式有两种:
new操作符;
在使用new操作创建新对象时,如果不给构造函数传递参数,那么可以省略后面的那一对圆括号,但是不推荐,如下代码实例所示:
对象字面量表示法。
在上面代码可以看出来,不同的属性之间用逗号隔开,但是最后一个属性后面没有逗号。如果在最后一个属性后面也加了逗号,会在IE和Opera中导致错误。在对象字面量中,属性名也可以是字符串,如
使用对象字面量语法时,如果大括号留空,则可以定义只包含默认方法和属性的对象,起作用和使用new操作符创建对象而不添加属性和方法相同,如下代码
在通过对象字面量定义对象时,实际上不会调用Object的构造函数,firefox除外。
一般来说,访问对象属性都是使用点(.)表示法,在很多的编程语言中都使用这个方法,但在ECMAScript中有另一种表示方法,就是使用方括号,但是在使用方括号时,要将要访问的属性以字符串的形式放在方括号中。如下代码实例所示:
Object类型
在ECMAScript中,Object是其他一切类型的基类,好比Java中的java.lang.Object。仅仅创建Object类型的实例是没有什么意义的,但关键是理解上面那句话的思想,即Object是js中的基类。Object的每个实例都具有下列的属性和方法:
constructor构造函数—保存用于创建当前对象的函数。如下面的代码实例,对象obj的constructor值是function Object()
<script type="text/javascript"> var obj = new Object(); var cons = obj.constructor; document.write(cons); //function Object() </script>
hasOwnProperty(propertyName)—用于检测给定的属性是否在当前对象实例中(而不是在对象实例的原型中)。其中,作为参数名称的propertyName必须是以字符串形式指定。
<script type="text/javascript"> var obj = new Object(); var flag = obj.hasOwnProperty("name"); var cons = obj.constructor; document.write(cons); //function Object() </script>
isPrototypeOf(object)—用于检测传入的对象是否是另一个对象的原型。关于原型的知识将在后续博客中介绍。
propertyIsEnumerable(propertyName)—用于检测给定的属性能否使用for-in语句来枚举。与hasOwnProperty()方法一样,作为参数的属性名需以字符串形式指定。
toString()—返回对象的字符串表示;
valueOf()—返回对象的字符串、数值或布尔值表示。
创建Object类型实例的方式有两种:
new操作符;
function test(){ var person = new Object(); person.name = "Hello World!"; person.age = 23; }
在使用new操作创建新对象时,如果不给构造函数传递参数,那么可以省略后面的那一对圆括号,但是不推荐,如下代码实例所示:
function test(){ var person = new Object(); var obj = new Object; person.name = "Hello World!"; person.age = 23; }
对象字面量表示法。
var person = { name : "Hello World!", age : 12 }
在上面代码可以看出来,不同的属性之间用逗号隔开,但是最后一个属性后面没有逗号。如果在最后一个属性后面也加了逗号,会在IE和Opera中导致错误。在对象字面量中,属性名也可以是字符串,如
var obj = { "name":"hello world", "age":12 }
使用对象字面量语法时,如果大括号留空,则可以定义只包含默认方法和属性的对象,起作用和使用new操作符创建对象而不添加属性和方法相同,如下代码
var person = {} // 等同于var person = new Object();
在通过对象字面量定义对象时,实际上不会调用Object的构造函数,firefox除外。
一般来说,访问对象属性都是使用点(.)表示法,在很多的编程语言中都使用这个方法,但在ECMAScript中有另一种表示方法,就是使用方括号,但是在使用方括号时,要将要访问的属性以字符串的形式放在方括号中。如下代码实例所示:
document.write(person.name); document.write(person.age); document.write(person["name"]); document.write(person["age"]);
相关文章推荐
- JavaScript程序开发(九)—js语法之数据类型
- JavaScript程序开发(八)—js语法之数据类型
- JavaScript程序开发(十一)—js语法之数据类型
- JavaScript程序开发(七)—js语法之数据类型
- JavaScript程序开发(七)—js语法之数据类型
- JavaScript程序开发(八)—js语法之数据类型
- JavaScript程序开发(九)—js语法之数据类型
- JavaScript程序开发(六)—js语法
- javascript复习笔记(一)js基础,基本语法,数据类型,控制流程
- javascript开发技术大全-第3章 js数据类型
- Web开发技术 ——JavaScript语法2(变量、数据类型、对象)
- JavaScript程序开发(四)—js语法
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第19讲_js运行原理_js开发工具介绍_js程序(hello)_js基本语法_学习笔记_源代码图解_PPT文档整理
- JavaScript程序开发(六)—js语法
- JavaScript 学习day01 (js的特点,组成,使用,语法和数据类型)
- JavaScript程序开发(五)—js语法
- javascript开发技术大全-第3章 js数据类型
- JavaScript 数据类型 、JS 变量 、JS 对象
- JS学习笔记6-JavaScript 数据类型
- JavaScript核心语法——变量、数据类型