Object类型
创建object实例的方法有两种
1,var person = new Object();// var person = {};
person.name = "wang";
person.age = 20;
2,var person = {
name:“wang”,
age:20 //注意最后一个属性不需要加逗号。
};
目前我们一般使用对象字面量语法创建对象。
访问对象属性有两种方法
1. alert(person.name);
2 alert(person["name"]);
这两种方式是一样的,但是当属性名中有空格例如属性名叫first name 使用person.first name就会报错,而且第二种可以用变量存储属性名,然后用变量访问属性,一般我们都使用点表示法。
Array类型
首先ECMAScript数组与其他语言的数组有一个区别,他的数组每一项可以保存任何类型的数据,比如数组第一个位置放字符串,第二个位置放数值,第三个位置放对象。
创建数组的方法
var color = new Array();
var color = new Array("red","blue","yellow");
var color = new Array(3);
var color = [ "red","blue","yellow"];
var color = [ ,,,,,,];次输出长度为6但是每个位置存放的都是Undifined;
检测数组
1.instance of 这个操作符存在一个问题,在于当一个页面有多个框架的情况下,也就是说会有两个或者以上的全局环境,那么存在两个或以上不同版本的数组构造函数。具体到为什么会出现问题,还要从instanceof的原理出发,这里涉及到原型与原型链的内容,后面在解决。
那么为了解决instanceof的不足,ECMAScript 5增加了Array.isArray()方法,他只是去判断某个值是不是数组而不管他是那个全局环境创建的。
或者Object.prototype.toString.call(myObj) === "[object Array]"
来安全的检测传过来的对象是否是一个数组。