js对象操作
-
对象:
对象(object)是大括号定义的无序的数据集合,由键值对构成,键与值之间用冒号分隔,大括号末尾要使用分号表示对象定义结束 -
注意:
1.属性与属性之间使用逗号分隔
2.属性加不加引号 ,没有区别 一般 都会使用引号将键包裹起来
3.如果对象内部包含多个键值对,每个键值对之间用逗号分隔。最后一个键值对末尾不用加逗号 -
例子:
var obj ={ 'userName':'小白', 'passWord':'1234' };
-
键名:
键名也被称为属性,对象的所有属性都是字符串,所以加不加引号都可以。但是,如果属性不符合标识符的条件(比如第一个字符为数字,或者含有空格或运算符),则必须加上引号。 -
键值:
键值是属性所对应的具体的值。JavaScript的对象的键值可以是任何类型 -
注意:
数组中的元素也是任意类型的 -
例子:
var obj ={ 'age':'18', 'isSchool':true, 'book':['三国演义','水浒传','西游记'], 'k':undefined }; console.log(obj);
-
对象属性值的读写
1.通过对象名,属性名 获取属性值
2.通过对象名[‘键名’]获取属性值var obj ={ 'username':'小白', 'passWord':'1234' } console.log(obj.username); console.log(obj['username']);
3.对象新增属性
1.对象名.新增的属性='属性值' obj.shuaige='小宇'; console.log(obj); 2.对象名['属性']='值' obj['height'] = '183cm'; console.log(obj);
注意:当属性重复时,保留最后一次出现的属性值。
var obj={}; obj.userName='小白'; obj['userName']='大白'; console.log(obj);
4.当获取对象中没有的属性时 则返回undefined
var obj ={ 'username':'小白', 'passWord':'1234' } obj.shuaige='小宇'; obj['height'] = '183cm'; console.log(obj.username); console.log(obj['username']); console.log(obj); console.log(obj.meishi);
注意:当属性重复时,保留最后一次出现的属性值
var obj={}; obj.userName='小白'; obj['userName']='大白'; console.log(obj);
-
.运算符与[]运算符区别
1. .运算符不能直接将数字作为对象的属性进行添加而中括号可以var obj={}; //obj.1=11; obj[11]=11; console.log(obj);
-
运算符不能通过字符串变量获取对象的属性值 而中括号运算符 是可以的
var obj = { 'hero':'天使' }; var str = 'hero'; console.log(obj.str); console.log(obj[str]);
3.运算符可以将js中的关键字作为对象属性添加 中括号运算符 不可以。
var obj = { 'hero':'天使' }; obj.document='嘻嘻'; obj[document]='嘤嘤嘤'; console.log(obj);
-
-
对象属性的操作:
-
1.Object.keys()
获取对象所有属性,返回一个属性构成的数组(Object.keys()是一个整体,调用的时候必须整体使用。)
描述:获取对象内所有的属性
语法:Object.keys(对象名)
例子:var obj = { 'userName':'小白', 'passWord':'123', 'sex':'男' }; var arr=Object.keys(obj); console.log(arr);
-
2.delete 删除一个属性
描述:删除对象的属性
语法:delete 对象名.属性名
例子:var obj = { 'userName':'小白', 'passWord':'123', 'sex':'男' }; delete obj.sex; console.log(obj);
注意:
删掉属性后,则此对象不再拥有此属性 所以 无法获取该属性 -
3.in 检查对象是否包含一个属性
描述:判断左边的字符串是否为右边对象的属性
语法: 字符串 in 对象名
例子:var obj = { 'userName':'小白', 'passWord':'123', 'sex':'男', 111:222 }; console.log('userName' in obj); console.log('xiaoyu' in obj); console.log(111 in obj);
-
4.for in
描述:遍历对象所有属性
例子var obj = { 'userName':'小白', 'passWord':'123', 'sex':'男', 111:222 }; for (var att in obj) { console.log(obj[att]); }
-
5.with
描述:操作多个对象属性
例子:var obj = { 'userName':'小白', 'passWord':'123', 'sex':'男', 111:222 }; with(obj){ 'userName':'大白', 'passWord':'456' }; console.log(obj);
-
6.对象的引用
例子:var star = { 'star1':'小宇', 'star2':'小白' }; var tempStar1 = star; var tempStar2 = star; star.star1 = '大白'; console.log(star); console.log(tempStar1); console.log(tempStar2);