最近遇到javascript的数据类型有哪些,有点错乱了,比较混乱,今天整理一下,记下来
javascript的数据类型有
字符串、数字、布尔、对象、Null、Undefined
当然看到这里可能会问为什么没有数组、函数啦,别着急,往下看,这些又可以分为以下两类
-
原始类型(String、bool、number、null、underfined)
原始类型是可按照值来访问,即其存储在栈内存当中,可以直接进行修改、复制、访问 -
引用类型(object、array、function)
引用类型,顾名思义是我们访问的是它的一个引用,即地址,因为引用类型本身数据结构较为复杂,占用内存空间较大,所以其存储位置是堆空间,栈内存储的只是其堆内存中对应的地址
备注:这也是js中深拷贝和浅拷贝需要注意的地方,对于原始类型,他们的深拷贝直接复制即可,但是对于引用类型,直接复制只是复制给他的一个地址空间的引用,只是浅拷贝,对应的具体怎么操作,之后再谈(这个是有血泪的面试教训)
总的来说,js数据类型一共有8种, 字符串、数字、布尔、对象、Null、Undefined,array和function
注意:
- underfine是一个牛B的数据类型,自己单独一类
- null是特殊的对象,直接复制即可执行深拷贝
- NaN (not a number) 这个关键字的意思是不是一个数字,但是他的数据类型是number
差不多就这么多,记下啦,如有问题,欢迎补充