1.JavaScript 有哪些数据类型?它们的区别是什么?
JavaScript 有八种基本数据类型,分为原始类型(Primitive Types)和引用类型(Reference Types):
原始类型
1)Undefined:表示变量未初始化。一个变量声明后但未赋值时,它的默认值是 undefined。
2)Null:表示一个空的值或一个不存在的对象。null 是一个特殊的关键字,它代表“无值”。
3)Boolean:只有两个值:true 和 false,用于逻辑判断。
4)Number:表示双精度 64 位二进制格式的浮点数,可以表示整数和浮点数。特殊值包括 NaN(Not a Number)和 Infinity。
5)String:表示字符序列,可以用单引号、双引号或反引号括起来的文本。
6)Symbol:用来创建唯一且不可变的值,主要用于对象属性的唯一标识,避免属性名冲突。
7)BigInt:用于表示任意精度的大整数,允许操作超过 Number 能表示的范围的整数。
引用类型
Object(包括普通对象、数组、函数等)
两者区别
存储区别
1)原始类型存储在栈(stack)中,值直接保存在变量访问的位置,由于其大小固定且频繁使用,存储在栈中具有更高的性能。
2)引用类型存储在堆(heap)中,占用空间较大且大小不固定,变量保存的是对实际对象的引用(即指针),这些引用存储在栈中。
赋值方式区别