JavaScript中到底有哪些类型?
在日常前端面试中,很多面试官会问基础的东西,比如JavaScript中到底有哪些类型?
很多面试者都会记不清或者回答迷迷糊糊。
大家可以记住一个口诀: 5简多复
简单类型 | 复杂类型 |
---|---|
undefined /null/string/number/bollean | object /array/function/set/map/regexp等等 |
5简:基本类型值
多复:引用类型值
下一个问题:为什么会区分基本类型值和引用类型值?
答:1,在进行变量的互相传值的时候,基本类型值传值,内存中会产生值的副本;引用类型值传递值的地址,内存中不会产生值的副本。
2,在进行 == 或者 === 比较的时候,基本类型值比较值是否相同,而引用类型值比较是否是内存中的同一个地址。
首先,我们来看看简单类型值首先来看基本类型值,先声明一个变量并把6 赋值给变量a,然后把变量a赋值给变量b,第三步把变量a+1,把两者打印,此时a为7,b为6.这就说明:基本类型值传值,内存中会产生值的副本。
再来引用类型值。如上图,声明一个数组arr1,下一步让arr1 赋值给arr2,后面arr1尾处删除一项,最后打印arr2,此时arr2也变成了[1,2]。这个例子可以说明其实arr1和arr2就是内存中的同一个地址,arr1变化了,arr2也跟着变化。
希望两个简单的截图,可以给大家说明两者区别,加油,冲鸭~~~