JavaScript原始类型和引用类型

JavaScript中的原始值undefined、null、布尔值、数字和字符串)与对象(包括数组和函数)有着根本区别。原始值是不可更改的(字符串是不可更改的!)。

原始值的比较是值的比较;对象的比较并非值的比较:即使两个对象包含同样的属性及相同的值,它们也是不相等的。各个索引元素完全相等的两个数组也不相等。两个单独的对象永不相等,两个单独的数组永不相等。通常将对象称为引用类型,对象值都是引用,对象的比较均是引用的比较:当前仅当它们引用同一个基对象时,它们才相等。

如果想得到一个对象或数组的副本,必须显示复制对象的每个属性或数组的每个元素。相比较两个单独的对象或数组,必须比较它们的属性或元素。

JavaScript中的内存分为栈内存和堆内存。一般来说,栈内存中存放的是存储对象的地址,堆内存中存放的是存储对象的具体内容。对于原始类型,地址和具体内容都存放在栈内存中;对于引用类型,地址在栈内存,具体内容存放在堆内存中。栈空间小,但可以被解释器直接检索,响应速度快。堆空间大,但不能被程序栈直接检索,响应速度慢。

内存中存储对象的生命周期:

  • 当对象将被需要时为其分配内存
  • 使用已分配的内存进行读写操作
  • 对象不再被需要时,释放存储这个对象的内存
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值