《JavaScript视频4》对象

对象

对象属于一种复合的数据类型,在对象中可以保存多个不同的数据类型的属性。

  • 内建对象:由ES标准中定义的对象,如String.Function.Object等等
  • 宿主对象:由JS的运行环境提供的对象,如BOM、DOM等等
  • 自定义对象:开发人员创建的

对象的操作

使用new关键字调用的函数,是构造函数constructor,构造函数是专门用来创建对象的函数。

var han = new Object();

在对象中保存的值,称为属性,向对象添加属性:

对象.属性名 = 属性值;
han.name = "韩";
han.gender = "男";

读取对象属性:

对象.属性名;
console.log(han.name);

如果读取对象中没有的属性,不会报错,而是会返回undefined。

修改属性的语法和增加相同。
删除属性的语法:

delete 属性名.属性值;

如果要使用特殊的属性名,则不能采用.的方式来添加,语法是:

对象["属性名"]= 属性值;

取值的时候同样采用这种格式。

使用[]这种形式去操作属性更加灵活,可以再[]中直接传递一个变量,这样变量的值是多少就会读取那个属性。

属性值可以是任意类型的值,甚至可以是一个对象。


in运算符

通过in运算符,可以检查一个对象中是否含有指定的属性,如果有则返回true,没有则返回false

语法:"属性名" in 对象

console.log("name" in han)

基本数据类型:String Number Boolean Null Undefined
引用数据类型:Object

JS中变量都是保存在栈内存中的,基本数据类型的直接在栈内存中存储,值与值之间是相互独立的。

对象是保存在堆内存中的,而对象这个变量的值保存的是对象的内存地址,即对象的引用。如果两个对象变量保存同一个对象的引用,那么通过一个变量修改对象的属性,会影响另外一个。如果将其中一个对象设置为Null,相当于将这个对象的引用断开obj2 = null;),不会影响另外一个对象的引用。

如果有两个对象,其所拥有的属性和属性值全都相同,但是因为内存地址不同,因此二者属于两个不同的对象。

当我们比较两个基本数据类型的值时,就是比较值;而当我们比较两个对象时,我们比较的是内存地址。


除了通过构造函数,我们通常还可以用对象字面量来创建一个对象,语法:

var han = {}

使用对象字面量,可以在创建对象时,直接使用键值对的方式指定对象中的属性:

var han = { 
		name:"han", 
		age:28,
		han2:{gender:true}
		}

注意,最后一个属性键值对后面不要加逗号了。

属性名可以加引号也可以不加,一般不加,如果使用特殊的属性名则需要加引号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值