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两个变量时,根本没有发现区别。
本文为番茄小火锅的原创文章,版权归本人和饥人谷所有,转载请注明出处。