记录3 对象
2017-01-06 本文已影响0人
suhuanzhen
对象的定义与访问
对象的键只有一种类型,那就是字符串,所以我们的键一般都要加上双引号。如果键不加上双引号也可以被转换为字符串,不过这样的做法不好,如下如果把legs num去掉双引号就不行了,因为legs后面的空格在转换为字符串时就被识别为字符串的末尾。
var duck = {
"legs num": 4,
name: "Xiao",
"color": "black"
}
duck;
>> Object {legs num: 4, name: "Xiao", color: "black"}
对象定义也可以写成一行
var duck = { "legs num": 4, name: "Xiao","color": "black" }
可以定义一个空对象,后面陆续添加键值对。
duck = {}
duck["newName"]="Big";
duck["age"]=33;
duck.color = "white";
duck
>> Object {newName: "Big", age: 33, color: "white"}
虽然定义时,键可以不加引号,但是访问对象元素时就必须加上引号
duck["legs num"]
4
duck[legs num]
>> Uncaught SyntaxError: Unexpected identifier
duck[name]
>> undefined
duck["name"]
>> "Xiao"
还可以通过点操作符访问对象属性
duck.name
>> "Xiao"
访问对象所有的键
使用 Object.keys()传入对象参数,返回所有键组成的数组
Object.keys(duck)
>> ["legs num", "name", "color"]
访问对象不存在的属性时,不会报错,会返回undefined
duck.isBrown
>> undefined