【日常记录】JS里的对象

1. JS中不同类型数据的存储有何不同?
JS引擎将计算机分配给它的那部分内存分为代码区和数据区,代码区存放用户写的代码,数据区存储数据。

  • 对于基本类型的数据,JS在stack区直接存储它们的值。
  • 对于引用类型的数据,JS在stack区存一个地址,在heap区对应地址处存储内容。、

2. 几个经典理解存储过程的题目

1.
var a=1
var b=a
var b=2
-----------现在a为?------
a//1

2.
 var a={name:'a'}
 var b=a
 b={name:'b'}
 -----------现在a.name为?------
a.name//'a'

3.
var a={name:'a'}
var b=a
b.name='b'
  -----------现在a.name为?------
a.name//'b'

4.
var a={name:'a'}
var b=a
b=null
  -----------现在a为?------
a//{name:'a'}

3.不易察觉的类型转换
现在有两个变量

var n1=1
var n2=new Number(1)

这两种定义模式有什么区别?
对于n1,它存储在stack区
但是当我们敲入代码n1.toString()时,不会报错,JS引擎做了两件事

  • 使用了一个临时变量temp,令这个临时变量的定义形式和n2一致。temp=new Number(1)
  • temp.toString()
    于是我们在使用n1和n2两个变量时,根本没有发现区别。

本文为番茄小火锅的原创文章,版权归本人和饥人谷所有,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值