字面量表示如何表示这个值,出去表达式,给变量赋值时,等号右边的都可以认为是字面量。
var text = "hello world!";
“hello world”就是字面量。字符串字面量。
text是变量名。
字面量分为字符串字面量,数组字面量,对象字面量。
- 对象字面量
包围在一个花括号里的所有“属性名/值”对。(包括零个)
var emptyObject = {};
var person = {
firstname = "Black",
lastname = "Joe"
};
对象是可以嵌套的。
var person = {
name = {
firstname = "Black",
lastname = "Joe"
},
age = 15,
sex = female
};
- 检索
对象检索的两种形式:
var person = {
firstname = "Black",
lastname = "Joe"
};
person["firstname"];
person.firstname;
如果检索一个对象不存在的属性的值将返回undefined。
更新
使用赋值语句来进行更新,如果该属性在对象中存在,那么旧的属性值将会被替换,如果对象没有拥有这个属性,则将该属性扩充到对象中。枚举
使用for in语句对对象的所有属性进行遍历,包括原型,函数以及你不需要的属性,为了滤掉不需要的值,使用过滤器hasOwnProperty()函数,或者typeof除掉函数。
var name;
for(name in person){
if(person["name"] !== "function"){
//执行代码块
}
}
属性名出现的顺序是不确定的,如果需要以一定的顺序,应避免使用这种方法,而是使用数组以正确的顺序包含属性名。如下:
var person = {
firstname = "Black",
lastname = "Joe",
age = "5",
sex = "male"
};
var i;
var property = {
"firstname",
"lastname",
"age",
"sex"
};
for(i = 0; i < property.length; i++){
document.writeln(property[i] + ":" + person[property[i]]);
}
通过这种方法可以的到我们想要的属性,并且按照我们想要的顺序。
- 删除
delete 运算符
如果对象包含该属性,将会从对象中删除该属性。