基本数据类型:Number String Boolean null undefined Symbol
看一下代码示例:
var str = 'hello'
str[0] = '123'
console.log(str); // hello
原因:
在js中,内存分为栈内存和堆内存。
栈内存存放有固定大小和空间的内容,但是字符串是个特例,它具有不变性,所以字符串也存储在了栈内存中;
堆内存一般存储的是不固定的内容,如果声明的变量是引用类型的,会在栈内存中存放引用地址,这个地址指向堆存
那null是对象类型还是基本数据类型呢?
虽然typeof null === 'object' 为true,但是在在计算机存储的时候,以000开头的就算作是对象类型
而null比较特殊,它表示空,它所有内容都是0,所以null不是引用数据类型,而是基本数据类型