对象
可以从以下几个方面概论:
- 数组是一组数据的有序集合
- 对象是一组数据无序的集合,拥有属性方法
- 属性:对象拥有的数据
- 方法:对象拥有的操作
- 内置对象:数组 set map 函数等.....
let odj = { name(key键):25(值)}
- 当使用对象不存在得属性,会得到undefined
如何创建对象
- 声明量 let
obj = { }
; - 构造函数
let obj = new object( );
对象中某条数据的键对应的值不是函数,就对这条数据称为“属性”
对象有哪些属性:
增:
- 创建时添加
例:let obj = {
name: zhangsan, //属性
age: 18 //属性
talk(){ //方法
console.log(666)// 666
}
}
obj.talk() //便是调用这个方法输出 666
- obj.key = value 例:obj.job = "loser"
- obj[string] = value 例:obj["gender"] = "male"
- console.log(obj.age); //18
let age = Symbol(“可以写注释”); //声明一个symbol变量
obj[age] = 14; //给symbol变量赋值(告诉他给那个对象添加)
console.log(obj[age]); //age:14
console.log(obj) // { name: 'zhangsan', age: 18, [Symbol(“可以写注释”)]: 14 }
(如果不想修改属性值 但又想添加同名键 可以这样写)
删:
delete obj.key || remove obj.key
删除方法 delete obj.方法名(不要加小括号);
使用被删除得属性会undefined 调用被删除得方法会报错
查:
console.log(obj.age)
改:
obj.key = new value
例:
obj.gender = "man"
obj.gender = "female" //更改
改已有的,如没有则新增
例:talk: function() {
console.log(666)
}
obj.talk(); //666
外部添加方法: obj.eat = function () {
console.log("2")
}
obj.eat(); //"2"
访问对象的属性必须通过对象 · 才行
例:let obj = {
name: "wang",
age: 18,
talk: function () {
console.log(`我叫${obj.name}`)
}
}
obj.talk(); //"wang"
怎么遍历对象的键值对
let arr = {
name: "zhangsan",
age: 18,
talk() {
console.log(666);
}
}
for (let i of Object.keys(arr)) { //键
console.log(i); //name age talk
}
for (let i of Object.values(arr)) { //值
console.log(i); //zhangsan 18 [Function: talk]
}
for (let i of Object.entries(arr)) { //键和值
console.log(i); //[ 'name', 'zhangsan' ]
[ 'age', 18 ]
[ 'talk', [Function: talk] ]
}
判断对象中是否存在要查找得键
console.log(“mao” in arr); //如果没有则返回布尔值false
console.log(“age” in arr); //如果有则返回布尔值true