一、如何创建对象
1.对象的字面量表达式,称为json(javascript object Notation);
对象格式:对象={属性名1:属性值1,属性名2:属性值2……}:
注:属性名可以是标识符,字符串,数值;属性值可以是:可以是任意数值,对象和函数;
eg: {name:张三,“age”:19,2:3}
{ car:{jc:“摩托”, wl:“德邦物流车”……},fun:function(){alert(“像这样的函数称为匿名函数”)}}
2.对象的new表达式:
使用new表达式创建对象的过程称为实例化,在实例化中对象的创建是根据模板类创建的,
eg: var obj=new object();
obj.name=“李四”;
obj.age=19;
obj.like=function(){alert(“匿名函数”)};
obj.info={width:10,height:20};
总结:两种创建对象的方式不同,但是使用方式是相同的;
不同:
字面量:创建简单,常用;
实例化对象:创建对象的模板类new实例化模板,保存常用方法,属性;
二、js对象的操作
如何遍历对象
for…in 语句用于对数组或者对象的属性进行循环操作。
for … in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
for (变量 in 对象) {
// 在此执行代码
}
dataObj = {
name : "gao",
age : 26
};
for(var d in dataObj) {
var d; // 属性名name ,age
var dataObj[d]; //属性值gao,26
}
var obj = {
'userName':'李白',
'hobby':['下棋','象棋','围棋'],
'age':18
};
for(var key in obj){
//注意使用【】运算符
console.log(obj[key]);//Array(3) [ "下棋", "象棋", "围棋" ]
}
访问对象的属性
1.通过 . 的方式
代码如下(示例):
var obj = {
name : "xiaoming",
age : 18,
show : function (girlfriend) {
console.log(this.name + "的女朋友是" + girlfriend);
}
};
// 访问属性值
console.log(obj.name); // 输出:"xiaoming"
console.log(obj.age); // 输出:18
2. 通过 [ ] 方式
代码如下(示例):
var obj = {
name : "xiaoming",
age : 18,
110 : "110",
show : function (girlfriend) {
console.log(this.name + "的女朋友是" + girlfriend);
}
};
// 访问属性值
console.log(obj["name"]); // 输出:"xiaoming"
var age = "age";
console.log(obj[age]); // 输出:18
console.log(obj["110"]); // 输出:"110"
js对象其他操作
1.Object.keys()
描述:获取对象内所有的属性(key)
语法:Object.keys(对象名)
例子:
var obj = {
'userName':'李白',
'hobby':['下棋','象棋','围棋'],
'age':18
};
var result=Object.keys(obj);
console.log(result);//Array(3) [ "userName", "hobby", "age" ]
2.delete
描述:删除对象内的一个属性
语法:delete 对象名.属性名
delete 对象名[属性名]
例子:
var obj = {
'userName':'李白',
'hobby':['下棋','象棋','围棋'],
'age':18
};
var result=delete obj.age;
console.log(result);//true
注意:无论删除成功还是失败 都返回true
3.in
描述:检查对象是否包含一个属性
语法:属性名 in 对象名
例子:
var obj = {
'userName':'李白',
'hobby':['下棋','象棋','围棋'],
'age':18
};
var result="123"in obj;
console.log(result);//false
补充
通过.方式获取属性值,key是静态的
var aa = {name: "zhang", age: 18};
console.log(aa.name);
通过[]获取属性值, key是动态的,可以是字符串,或者数字的形式
var bb = {"apple": 3, "pear": 2}
var cc = {1: "number1", 2: "number2"}
console.log(bb["apple"]);
console.log(cc[1]); // 注意这里的写法跟数组容易混淆,cc仍是对象,不是数组
2021年4月2日补充:
for in --> ES5标准 遍历key值 索引
for of --> ES6标准 遍历value值 对象
for of ---> 只能用于数组的遍历
for in ---> 不但可以用于数组的遍历,还可以用于遍历对象中的属性集