js基础2
对象像一个容器 可以装不同的属性
1 对象属于一种复合的数据类型 在对象中可以保存多个不同数据类型的属性
2 对象的分类 (内建对象 宿主对象 自定义对象)
栈内存 堆内存
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>对象&&属性名&&属性值</title> </head> <body> <script> // 总共有7中数据类型 // 基本数据类型是 String Number Undefined Null Boolean Symbole // 复合数据类型 object // ==================================================================== var name = '陈恩伊' var age = '18' var gender = '女' //对象可以定义为 对象属于一种复合数据类型 在对象中可以保存多个不同数据类型的属性 // ==================================================================== // 对象的分类 //内建对象 宿主对象 自定义对象 // ==================================================================== // 使用new关键字调用的函数 被称为构造函数constructor //构造函数是专门用来创建对象的函数 var obj = new Object() console.log(typeof obj) //object // ==================================================================== //在对象中保存的值称为属性 //1 向对象中添加属性 //语法: // 对象.属性名 = 属性值 obj.name = '孙悟空' obj.gender = '男' obj.age = 18 console.log(obj) //2 读取属性 //语法: // 对象.属性名 console.log(obj.name) console.log(obj.gender) console.log(obj.age) console.log(obj.hello) //undefined 如果读取对象中没有的属性 不会报错 而是会返回undefined //3 修改属性 和 添加属性是一样的语法 obj.name = '陈恩伊' console.log(obj.name) //4 删除属性 //语法: // delete 对象.属性名 delete obj.name console.log(obj.name) //undefined 就说明name这个属性已经被删除 不存在了 // ==================================================================== //对象的属性名&&属性值 //如果使用的是特殊的属性名 是不能采用点的方式来操作的 // 需要使用另一种方式 //语法: // 对象["属性名"] = 属性值 //读取时也需要采用这种方式 var obj = new Object() obj['123'] = 789 console.log(obj[123]) //使用[]这种方式去操作属性 更加的灵活 //在[]中可以直接传递一个变量 这样变量的值是多少就会读取那个属性 obj['name'] = '陈恩伊' var a = 'name' console.log(obj[a]) //'陈恩伊' //属性值 //js对象的属性值可以是任意的数据类型 obj.test = null obj.test = undefined console.log(obj.test) obj2 = new Object() obj2.name = '李栋旭' //将obj2作为obj的属性值 obj.test = obj2 console.log(obj) //{{test:{...}}} console.log(obj.test) //{name:'李栋旭'} console.log(obj.test.name) //李栋旭 console.log(typeof obj.test.name) //string // ==================================================================== //通过 in运算符 可以检查一个对象中是否含有指定的属性 //如果有就返回true 没有则返回false // 语法: //` '属性名' in 对象 //检查obj中是否含有test2属性 var obj3 = new Object() console.log('test2' in obj3) //false </script> </body> </html>