JavaScript引用类型(对象及数组)
2018-10-10 本文已影响3人
不喜欢换昵称
ECMAScript是一门面向对象的语言,描述的是一类对象所具有的属性和方法。
-
==Object类型==
创建方法
-
使用new关键字(构造函数)
var person = new Object(); person.name = "lili"; person.age = 18;
-
使用对象字面量
var person = { //{ 表示一个表达式的开始 name: "lili", //是逗号 age: 18 //对象的最后一个属性添加逗号会在IE7及更早的浏览器版本和Opera中导致错误 } //} 表示一个表达式的结束
对象字面量的属性名也可以使用字符串,比如:
var person = { "name": "lili", "age": 18 }
访问对象
-
点表示法
alert(person.name);
-
方括号法
alert(person["name"]);
方括号可以使用变量访问(主要优点):
var propertyName = "name"; alert(person[propertyName]);
如果属性名中包含:导致语法错误的字符(比如空格),使用的是关键字或保留字,包含非字母和非数字的(属性名是可以包含的)。也需要使用方括号法:
person["first name"] = "lili"; //空格,不能使用点表示法访问
-
-
==Array类型==
创建方法
-
使用Array构造函数
var colors = new Array(); var colors = new Array(20); //20表示数组的长度:length=20 var colors = new Array("red"); //创建一个包含一项的数组 var colors = Array(3); //省略new与上面结果相同 var colors = Array("red"); //省略new与上面结果相同
-
使用数组字面量
var colors = ["red", "blue"]; //中间用逗号,末尾没有符号 var names = []; //创建一个空数组 var values = [1, 2,]; //不要这样!会创建一个包含2或3项的数组length=2||3(IE8-) var options = [,,,,,]; //不要这样!会创建一个包含5或6项的数组length=5||6(IE8-)
访问数组
使用方括号并使用相应值得基于==0==的数字索引
var colors = ["red", "blue", "green"]; alert(colors[0]); //red colors[2] = "orange"; //修改第三项"green"=>"orange" colors[3] = "gray"; //新增第四项"gray"
数组的长度length,不是只读的。可以通过它添加删除元素
var colors = ["red", "blue", "green"]; colors.length = 2; alert(colors[2]); //underfined colors[colors.length] = "pink"; alert(colors[2]); //pink colors.length = 4; alert(colors[3]); //underfined
检测数组
检测某个对象是不是数组(比如document.getElementsByClassName(“demo”);得到就是伪数组)
if (value instanceof Array) { //instanceof:实例 //对数组执行某些操作 }
也可以使用Array.isArray()方法---ECMA5新增
if (Array.isArray(value)) { //对数组执行某些操作 }
-