JS基础笔记(二)6.属性名和属性值以及对象补充

2.属性名和属性值

向对象中添加属性
属性名:

  • 对象的属性名不强制要求遵守标识符规范
    什么乱七八糟的名字都可以使用
  • 但是我们使用是还是尽量按照标识符的规范去做
obj.name = "大圣";

2.1使用特殊的属性名

如果使用特殊的属性名,不能采用.的方式来操作
需要使用另一种方式:
语法:对象[“属性名”] = 属性值
读取时也需要采用这种方式
使用[]这种形式去操作属性,更加灵活,
在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性

obj["123"] = 789;
obj["nihao"] = "你好";
// console.log(obj["123"]);
var n = "nihao";

2.2属性值

JS对象的属性值,可以是任意的数据类型
甚至也可以是一个对象

obj.test = true;
console.log(obj.test);	
// 创建一个对象
var obj2 = new Object();
obj2.name = "八戒";
// 将obj2设置为obj的属性
obj.test = obj2;
console.log(obj.test);

2.3in运算符

  • 通过该运算可以检查一个对象中是否含有指定的属性
    如果有则返回true,没有则返回false
  • 语法:
    “属性名” in 对象
// 检查obj中是否含有test属性
console.log("test" in obj);

3.基本数据类型和引用数据类型

JS中的变量都是保存到栈内存中的,

  • 基本数据类型的值直接在栈内存中存储,值与值之间是独立存在的,修改一个变量不会影响到其他变量。
  • 对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟一个新的空间,而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当一通过一个变量修改属性时,另一个也会受到影响。
  • 当比较俩个基本数据类型的值时,就是比较值,而比较两个引用类型时,它就是比较对象的内存地址
  • 如果两个对象一模一样的,但是地址不同,它也会返回false

4.对象字面量

使用对象字面量来创建一个对象:
使用对象字面量,可以在创建对象,直接指定对象中的属性

  • 语法,{属性名:属性值,属性名:属性值…}
    对象字面量的属性名可以加引号也可以不加,建议不加,
    如果使用一些特殊的名字。则必须加引号。
  • 属性名和属性值是一组一组名值对结构:
    名和值之间使用:连接,多个名值对之间使用逗号隔开,如果一个属性之后没有其他的属性了,就不要写逗号。
    var obj2 = {		
    			name:"猪八戒",
    			age:18,
    			gender:"男",
    			test:{name:"沙和尚"}
    };
    

你可能感兴趣的:(JS笔记)