1.对象定义:
花括号里面可以有多个键值对,键(key)作为标识符使用,值(value)可以使任意数据类型。 如果是函数我们称之为方法,其余是属性。
let a = {
name:'小明',
age:18,
title:['11','111'],
say:function(){
console.log('hello')
}
}
// 计算属性 读对象
const propertyName = 'name';
console.log(a[propertyName]);//小明
console.log(a['name']) //与上一行相同
console.log(a.propertyName);//undefined
console.log(a.'name') //报错
2.读取对象里面的某些属性
(1)对象名.属性名 //点操作符
(2)对象名[ ]
通过 点 或 方括号来访问对象的属性
a.name //小明
a['age']//18
3.给对象新增属性
// 计算属性 定义对象
const o = {
'a-b': 1
}
// 读
o['a-b'];
// 写入 a-c 值为3
o['a-c'] = 3;
// 写入 a-d
const k = 'a-d';
o[k] = 5 //{a-b: 1, a-c: 3, a-d: 5}
o.k = 8 //{a-b: 1, a-c: 3, a-d: 5;k: 8}
//注意 若const k = 'a-d';则o[k]与o.k含义不同!
(1)对象.属性名 添加
<script>
function func(){
console.log(1111111111);
}
var obj = {};
obj.name = "star";
obj.sayHello = func;
obj.sayHello(); //111111111
console.log(obj); //{name:'star',sayHello:func}
</script>
<script>
function func(){
console.log(1111111111);
}
var obj = {};
obj.name = "star";
obj.sayHello = func;
obj.sayHello(); //111111111
console.log(obj); //{name:'star',sayHello:func}
</script>
(2)对象[属性名] 添加
<script>
var obj = {};
obj['age'] = 25;
console.log(obj); //{age:25}
</script>
4.删除对象内某个属性( delete 对象名点操作符或方括号)
const o = {
'a-b': 1,
name:"小明",
k:123
}
console.log(o); //{'a-b': 1,name:"小明",k:123}
delete o.k
console.log(o.k); //undefined
delete o['name']
console.log(o); //{'a-b': 1}
5、判断对象的类型
(1)、instanceof运算符:
let obj = {};
console.log(obj instanceof Object); //true
(2)、constructor属性:
let obj = {};
console.log(obj.constructor === Object); //true
(3)、Object.prototype.toString.call():
可以返回对象的内部属性[[Class]]的值,从而准确判断对象的类型。
let obj = {};
console.log(Object.prototype.toString.call(obj)); //"[object Object]"