- 问题:
- 基本类型有哪些?复杂类型有哪些?有什么特征?
ECMAScript变量有两种不同的数据类型:基本类型和引用类型。
- 基本类型:数值、布尔值、null、undefined、字符串。基本类型的存储存放在栈区;
- 引用类型:对象、数组、函数、正则。引用类型的存储需要内存的栈区和堆区共同完成,栈区内存保存变量标识符和指向堆内存中该对象的指针,堆区实际保存该对象。
- 如下代码的输出? 为什么?
var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2); //false obj1和obj2指向两个不同的地址;
console.log(obj1 = obj2); //Object{a:1,b:2} obj1=obj2 使得两个变量指向的地址一样
console.log(obj1 == obj2); //true obj1和obj2指向相同的地址