什么是对象?对象的属性和存储又是什么?

一.什么是对象?
**对象:**其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。万物皆对象,除了数字,字符,布尔这种绝对值以外的所有部分都是对象,对象是类的实例化体现,类是对象的抽象体现。对象是一个个体,它具备自身类的所有属性和方法。

二.对象的属性
对象属性有两种写法,一种是点语法,另一种是[ ]的写法.。
例:var obj={a:1,b:2};
a是obj的key
1是obj的key属性a的value
可以直接定义对象obj的属性a的值是10,即obj.a=10;或者obj[“a”]=10;
1.点语法:
点语法的属性是不加双引号,如:obj.a。
使用点语法时不能使用变量,所以不需要加双引号。
2. key的写法,必须有双引号,如:obj[“a”]。
为什么key的写法必须有双引号,在key这种写法时,要求属性名必须是字符型或者symbol。
说明:当使用:对象[变量]这种写法时,如果变量值不是字符型,会隐式转换为字符型,并且将这个字符串作为该对象的属性名。任何对象强转为字符串后,都会变为"[object object]"。
例:
var obj={a:1,b:2,o:3};
var o=“a”;
console.log(obj.c);//如果对象上没有该属性时,结果是undefined
console.log(obj[o]);//这里的o没有加双引号,因此是变量o。结果是1
console.log(obj[“o”]);//这里获取了obj的o属性。结果是3
console.log(obj.o);//使用点语法时不能使用变量,所以不需要加双引号,默认为是o属性。结果是3

三.对象的存储
对象,存储在哪里?
对象是存储在堆中,当点击对象前面的箭头时,才去堆中对应的地址取出数据,引用地址就是指堆中对象存储的地址。
栈与堆的区别:
1. 栈的数据读取,写入速度快,但是存储的内容较少(与电脑运行内存类似)
2.堆的读取和写入速度慢,但是存储的内容多(与电脑硬盘类似)
注意:字符型,数值型,布尔型,undefined存在栈中。
栈中,一旦该变量不再使用时会被清理掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值