在js里没有堆和栈之分,只有一个巨大的内存。
也就是原始类型(可以直接保存在变量本地(window)的简单类型 number、string、Boolean、null、undefined)和引用类型(值无法保存在变量本地的复杂类型,需要通过变量名里的地址找到)。
变量里只能存一个值,是存在window里。而[a,b,c]这样的数组是存在于window以外,以地址的形式保存,数组名因为是变量,所以存储在window里,通过数组名去寻找地址,才能得到数组里的值。
[]是一种动作,创建数组的意思。//也是一种动作,创建正则表达式的意思(正则表达式不能动态生成)。所以[]==[]是指创建了两个数组,而这两个数组指向的是不同的两个地址,所以返回的是false,同理/正则/==/正则/也是false。