对象属性名和属性值
属性名
- 向对象中添加属性
向对象中添加属性
属性名:
对象的属性名不强制要求遵守标识符的规范
使用[]这种形式去操作属性,更加灵活
在[]中可以直接传递变量,这样变量值是多少就会读取那个属性
var obj = new Object();
obj.name = "名称";
obj.var = "乱码"
// 如果要使用特殊的属性名,不能采用.的方法来操作
obj["123"]= 789;
console.log(obj[123]);
//读取的时候同样使用属性名取
obj["name"]="你好";
var n = "name";
console.log(obj[n]);
属性值
js属性值:可以是任意数据类型
甚至可以是给对象
obj.test = true;
obj.test = null;
obj.test = undefined;
var obj2 = Object();
obj2.name="名称2";
in运算符
通过该运算符 可以检查一个对象中是否含有指定的属性
如果有则返回true 没有则返回false
语法:
“属性名” in 对象
console.log("var" in obj);
基本数据类型和引用数据类型
基本数据类型
基本数据类型:string number boolean null undefined
引用数据类型 object
js中变量都是保存在栈内存的
基本数据类型的值直接在栈内存中存储
值于值之间是独立存在的,在修改一个变量不会影响其他的变量
对象是保存在堆内存中,每创建一个新的对象就会在堆内存中开辟一个新的空间
而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用
当一个通过变量修改属性时,另一个也会收到影响
基本数据类型
引用数据类型
当我们比较两个基本数据类型时,就是比较他们的值。
当比较两个引用数据类型时,就比较他们的内存地址
每new一个对象时,都开辟一个空间
var obj3 = new Object();
var obj4 = new Object();
obj3.name="shs";
obj4.neme="shs";
如果他们的值一样,但是地址不同,还是会返回fales