JS中的数据类型

88 阅读1分钟
js的数据类型分为基本类型和引用类型。
基本类型:

String Number Bollean null undefined Symbol Bigint

引用类型:

只有Object一个。 但有时候为了区分,还是能检测出function类型, 但其实Function也属于Object,也可以被添加属性。

相关知识点

一、 为什么有了null,还有undefined的概念。两者之间有什么联系和区别。
null是被最先设计出来的,是借鉴了java的语言的特性。但null的设计存在两个缺点

  1. null的位码是00000000, 而typeOf 判断数据类型时是根据位码前两位进行判断的,这里会导致误判。 所以typeof null === "object" 的值是true。
  2. js存在隐式转换, 在进行数字类型的加减操作时,null会被强制转化成0。 以上两种行为会对开发带来一定的隐患,因此又发明了undefined基本类型。

二、 基本类型存放在栈里, 引用类型的地址也存放在栈里,但实际数据存放在堆里,通过栈的地址找到堆中存放的数据。 这里要注意,函数中的参数传递都是值传递,不会传递真正的数据,如果是基本类型则会拷贝一份,如果是引用类型,则传递地址过去。