object取key,object取value,object删除键值对,object添加属性

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"}

//赋值运算来为属性中可写的属性赋值,
//当访问的对象存在,但是表达式中的属性不存在时候,则会返回一个类型错误。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章