JS中的对象就是一个以键值对形式存储属性的一个集合,每一个属性有一个特定的名称,并与名称相对应的值。可以称之为映射。
1,object取key
Object.keys(obj)
//传入对象, 返回 包含对象可枚举属性和方法的数组
var obj = {'a': 'Beijing', 'b': 'Haidian'};
console.log(Object.keys(obj)); //['a', 'b']
// 传入字符串,返回索引值
var str = "Beijing";
console.log(Object.keys(str));
// ["0", "1", "2", "3", "4", "5", "6"]
// 传入数组,返回索引值
var arr = ["a", "b", "c"];
console.log(Object.keys(arr));
//["0", "1", "2"]
//构造函数,返回空数组或者属性名
function Demo(name, age) {
this.name = name;
this.age = age;
}
console.log(Object.keys(Demo));
// []
2,object取value
常用方式:obj.key
方式2:obj[key]
没有对应的key属性,返回undefined。
3,object删除属性
delete:一元运算符,用于删除对象和数组中的属性的,单它也仅仅是删除一个值,并不会返回删除的内容。
var o = {x:1, y:2};//定义了一个对象
delete o.x;
"x" in o; //这里将会得到false值。
var a = [1,2,3];
delete a[1];
2 in a; //元素2已经不再数组中了。
a.length == 3 //这里将会显示为true,虽然删除了属性但是,留下了一个占位,所以数组长度没有变化。
//删除属性之后其实只是元素本身与对象的关系被断开了,
//但是实际上数组中的内容数量还是没有改变的,
//但是并没有数值,所以通过undefined来进行填充。
4,object添加属性
var obj = {
this.name = "zhangsan";
};
obj.name = "jack"; // obj: {name: "jack"}
obj['name'] = "jack"; // obj: {name: "jack"}
//赋值运算来为属性中可写的属性赋值,
//当访问的对象存在,但是表达式中的属性不存在时候,则会返回一个类型错误。