| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- // 对象扩展
- // let sex = "男";
- // let keyStr = "school";
- // let keyStr2 = "school2";
- // let obj = {
- // name:"张三",
- // age:18,
- // // 如果属性值为变量,且属性名与变量名相同,可以省略属性名
- // sex,
- // // es6中 对象的方法可以省略function关键字
- // talk(){
- // console.log("hello");
- // },
- // // 如果属性名称为变量可以使用[]进行表示
- // [keyStr]:"清华大学",
- // [keyStr2]:"北京大学",
- // }
- // obj.sex = sex;
- // obj.talk();
- // console.log(obj);
- // 访问属性时如果属性名为变量,需要使用[]进行表示
- // console.log(obj[keyStr]);
- // 访问属性时也可以写一些简单的逻辑表达式
- // console.log(obj["school"+2]);
- // let obj1 = {
- // a:1
- // }
- // let obj2 = {
- // a:1
- // }
- // let obj3 = obj1;
- // let a = 1;
- // let b = 1;
- // 当判断两个变量是否相等时,其实判断的时值(栈内存中存储的值是否相等)
- // console.log(a==b);
-
- // console.log(obj1 == obj3);
- // Object.is 当判断两个对象是否相等时,其实判断的时对象的地址是否相等
- // console.log(Object.is(obj1,obj3));
- let obj1 = {
- userName:"张三",
- }
- let obj2 = {
- age :28
- }
- // 合并对象 Object.assign()
- // 合并对象时,会将第二个对象及后边的所有对象的属性值合并到第一个对象的属性中
- // let obj3 = Object.assign(obj1,obj2);
- // console.log(obj1);
- let obj3 = Object.assign({},obj1,obj2);
- console.log(obj3,obj1);
- // in 关键字可以判断一个对象是否包含某个属性
- // console.log("userName" in obj1);
- // for...in 循环可以遍历一个对象的所有属性
- // for(let key in obj3){
- // console.log(key);
- // console.log(obj3[key]);
- // }
- // Object.keys() 方法可以获取一个对象的所有属性名,以数组的形式返回
- let keys = Object.keys(obj3);
- console.log(keys);
-
-
- </script>
- </body>
- </html>
|