对象

对象
可以从以下几个方面概论:

  1. 数组是一组数据的有序集合
  2. 对象是一组数据无序的集合,拥有属性方法
  3. 属性:对象拥有的数据
  4. 方法:对象拥有的操作
  5. 内置对象:数组 set map 函数等.....
  6. let odj = { name(key键):25(值)}
  7. 当使用对象不存在得属性,会得到undefined

如何创建对象

  1. 声明量 let obj = { };
  2. 构造函数 let obj = new object( );
    对象中某条数据的键对应的值不是函数,就对这条数据称为“属性”

对象有哪些属性:
增:

  1. 创建时添加

例:let obj = {

name: zhangsan,  //属性
age: 18  //属性
talk(){  //方法
    console.log(666)// 666
}

}
obj.talk() //便是调用这个方法输出 666

  1. obj.key = value 例:obj.job = "loser"
  2. obj[string] = value 例:obj["gender"] = "male"
  3. 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

你可能感兴趣的