引用数据类型与基本数据类型
基本数据类型:
numberStringBooleannullundefinedsymbol引用数据类型:可以粗略的认为除上述类型意外的类型都是引用数据类型。
JS的内存空间分为栈(stack)、堆(heap)、池(一般也会归类为栈中)。
栈:
一般用来保存基本数据类型。
堆:
用来保存引用数据类型的实体。
池:
用来保存常量。
从内存的角度来看赋值过程
基本类型:在栈内开辟新的存储空间来保存值
var str1 = "str1"; var str2 = str1; str2 = "str2"; console.log(str2); console.log(str1);引用类型:在栈内存储指针、在堆内存放实体
var str1=['Hello World']; var str2=str1; console.log(str2[0]); str1[0]='Hello'; console.log(str2[0]); //数组转换为树形结构 function toTree(data) { var result = []; if (!Array.isArray(data)) { return result } data.forEach(function (item){ delete item.children; }); var map = {}; data.forEach(function (item) { map[item.nodeId] = item; }); data.forEach(function (item){ var parent = map[item.parent]; if (parent) { (parent.children || (parent.children = [])).push(item); } else { result.push(item); } }); return result; };