以下是html代码,个人建议放在IDE里运行,边看效果,边学习~
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS初步(十一)——对象(二)</title> <script> /* 属性名和属性值 属性名: - 对象的属性不强制要求遵守标识符的规范,但尽量遵守 属性值: - JS对象的属性值,可以是任意的数据类型,甚至也可以是一个对象 */ //属性名 var obj = new Object(); obj.var = "李耳"; //这里用了定义用的var,看看是否违规 console.log(obj.var); //输出看看有没有 //obj.123 = 789; //这里用的123 //console.log(obj.123); //输出看看,结果提示Uncaught SyntaxError: Unexpected number /* 如果要使用特殊的属性名,不能采用.的方式来操作,需要使用另一种方式: 语法: - 对象["属性名"] = 属性值; 读取时也要采用这种方式 使用[]这种形式去操作属性会更加的灵活,在[]中可以直接传递一个变量,这样读取的时候实际上就是在读取那个变量的值 */ //这里真用的123了...或者你也可以更疯狂一些,自己可以用&*^$&%^$(&^%&%^&*($))试试 obj["123"] = 789; //这里就没问题了,但还是不建议这样命名 console.log(obj["123"]); //输出看看,值为789 var n = "123"; //创建一个字符串变量并赋值 console.log(obj[n]); //试试效果,发现值为789,同理,以此类推 //属性值 var obj2 = new Object(); obj2.name = "老子"; //将obj2设置为obj的属性 obj.obj2 = obj2; console.log(obj); //看看效果,会发现obj中出现了一个obj2:{...},{}表示一个对象 console.log(obj.obj2); //这里输出的就是obj2的属性 console.log(obj.obj2.name); //输出obj2里的name属性,当然要想效果一样也可以写成console.log(obj2.name) /* in运算符 - 通过该运算符可以检查-一个对象中是否含有指定的属性,如果有则返回true,投有则返回false - 语法: "属性名" in 对象 */ //检查obj中是否含有test属性 result = "test" in obj; //这里我们都知道,没有,所以in运算返回false,并赋值给result console.log(result); //输出看看,当然也可以简写成console.log("test" in obj); /* 基本数据类型 String Number Boolean Null Undefined 引用数据类型 Object */ //基本数据类型 var a = 123; var b = a; a++; console.log("a = "+a); //此时a的值为124 console.log("b = "+b); //此时b的值为123 //引用数据类型 var obj = new Object(); obj.name = "李耳"; var obj2 = obj; obj.name = "老子"; //修改属性值 console.log(obj.name); //此时输出老子 console.log(obj2.name); //此时输出老子 /* JS中的变量都是保存到栈内存中的,基本数据类型的值直接在栈内存中存储, 值与值之间是独立存在,修改一个变量不会影响其他的变量 对象是保存到堆内存中的,每创建一个新的对象, 就会在堆内存中开辟出一个新的空间, 而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用, 当通过一个变量修改内部的属性时,另一个也会受到影响 */ </script> </head> <body> </body> </html>
Web全栈工程师之路(三)——JavaScript篇(十一)——对象(二)
原文:https://www.cnblogs.com/lyrebirth-world/p/12976557.html