JavaScript中的对象

对象是现实中的具体事物在编程中的的抽象表达,JavaScript中的对象是用来保存一系列数据的集合,以键值对的形式体现。

var obj = {
	name:"xiaoming",
	age:10
};

对象中的“键”:
JavaScript中对象的键默认是字符串,键名如果不是标准的标识名且不是数字,则必须加上引号或者双引号,不然会报错:

var obj = {
	1x:123
};

上面会报错,1x不是标准的标识名,需要加引号或者双引号:

var obj = {
	"1x":123
};

对象中属性的读取:
可以使用“.”或者[]读取对象中的属性:

var obj = {
	name:"小明"
};
console.log(obj.name);//输出小明
console.log(obj["name"]);//同样输出小明

需要注意的是如果用[]来读取属性必须加上引号,否则会认为是一个变量:

var name = "age";
var obj = {
	name:"LT",
	age:10
};
console.log["name"];//输出LT
console.log[name];//输出10,这里的name因为没加引号 认为是一个变量 指向age这个属性

当键名是数字的时候不能使用点号来读取属性,只能用[],使用点号会被认为是小数,并且对于键名是小数的情况,[]中可以不加引号:

var obj = {
	10:123
};
console.log(obj.10);//这里会报错
console.log(obj[10]);//输出123

对象中属性的赋值:
对象可以先定义后赋值,对属性赋值同样是用点号或者[],同样如果键值是数字只能用[]:

var obj = {};
obj.name = "LT";
obj[10] = 123;

对象中的属性操作:
in操作:
可以使用in操作判断一个属性是否在对象中 语法:属性 in 对象

var obj = {
	name:"LT",
	age:26
};
console.log("name" in obj);//true

in操作不仅可以判断对象自己的属性,还可以判断继承属性:

var obj = {
	name:"LT",
	age:26
};
console.log("toString" in obj);//true

上面代码中toString是对象obj的继承属性。

hasOwnProperty操作:
hasOwnProperty可以判断一个属性是否是对象自己的属性 语法:对象.hasOwnProperty(属性)

var obj = {
	name:"LT",
	age:26
};
console.log(obj.hasOwnProperty("age"));//true
console.log(obj.hasOwnProperty("toString"));//false toSring是继承属性

delete操作:
delete操作可以删除对象的属性,会返回一个操作结果true或者false:

var obj = {
	name:"LT",
	age:26
};
delete obj.name;
console.log(obj.name);//返回undefined name属性被删除 不存在

使用delete命令删除一个不存在的属性不会返回false而是返回true,只要一种情况:属性存在并且不能删除 才会返回false

var obj = {
	name:"LT",
	age:26
};
var objA = Object.defineProperties(obj,{
	sex:{
		value:"男",
		configurable:false
	}
});
console.log(delete objA.sex);//false configurable:false不能删除

获取属性:
使用Object.keys来获取对象的属性:

var obj = {
	name:"LT",
	age:26
};
console.log(Object.keys(obj));//["name","age"]

遍历对象的属性:
使用for…in来遍历对象的属性:

	var obj = {
		name:"LT",
		age:26
	};
for(var key in obj){
	console.log("键名:"+key);//依此输出name age
	console.log("键值:"+obj[key]);//依此输出:"LT"  26
}

使用for…in遍历对象 只能遍历对象中可遍历的属性,不可以遍历的属性会自动跳过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值