关于JS中基本类型与引用类型(含instanceof和typeof)

JavaScript包括六种基本数据类型:Undefined、Null、Boolen、String、Number和Symbol。
这些类型是按值访问的。
也就是说,它直接存储在实际变量中,您可以操纵它的值,但不能向它添加属性或方法。
基本类型变量存储在内存中的堆栈区域中,其中包含变量的标识符和值。
引用类型分为三种类型:对象、数组和函数。
这些实际上是由各种构造函数生成的对象。
例如,使用数组构造函数创建一个空数组a。
如果修改数组构造函数Array的原型对象,添加一个名为ceshi的方法,并使用实例对象a运行该方法,就可以成功打印结果。
这证明了Array对象的存在。
因为引用类型数据是通过引用来访问的,所以可以随时通过改变原型链来调整它的属性和方法。
为了存储引用类型值,栈区和堆区必须一起工作。
栈区在堆内存中存储变量标识符和对象指针,堆内存存储对象。
例如,如果将变量b打印为[1,2,3,4]并使用a复制b,则实际上会复制指针,以便a和b指向同一内存堆中的对象。
它们共享相同的数组对象,因此更改其中一个就会更改另一个。
引用类型之间的比较基于指针,而基元类型之间的比较基于值。
typeof用于确定数据类型。
语法为typeofa,可以直接获取a的数据类型。
对于引用数据类型,使用typeof的结果始终是一个对象。

JavaScript中六种数据类型

JavaScript语言包含五种基本数据类型:undefined、null、boolean、number和string。
其中,对象类型被归类为复杂类型,由一组无序的键值对组成。
JavaScript数据类型是动态的,因此不需要定义其他类型。

为了识别给定数据的类型,JavaScript提供了typeof运算符。
使用typeof运算符时,返回值的类型包括“undefined”、“boolean”、“string”、“number”和“object”。
另外,如果该值是函数,则返回“function”。

JavaScript数据类型详解

在JavaScript中,每种数据类型都有自己的特点和用途。

1.unknown

唯一的值是未定义的。
如果使用var声明变量但未初始化该变量,则该变量具有未定义类型。

2.null

这也是唯一的值,且值为null。
表示一个空对象指针。
如果您定义了一个存储对象的变量,我们建议您将其初始化为null,以便更容易判断该变量是否存储对象引用。

3.Boolean

有两个值:true和false,区分大小写。
您可以使用Boolean()函数将值转换为布尔类型。
转换规则为:如果非空、非假、非空、非0、非空字符串、非空数组或非空对象,则为true;否则为false。

4.Number

可以分为浮点数和整数。
浮点数必须包含一个小数点和至少一位小数位,并且消耗的内存是整数的两倍。
极大或极小的数字用e表示。
浮点数的最大精度为小数点后17位,但在算术计算中不如整数精确。
NaN表示非数字值,将数字值除以非数字值将返回NaN。
要确定值是否有限,可以使用isFinite()函数。

5.String

由零个或多个16位Unicode字符组成。
包含表示非打印或特殊用途字符的特殊字符文字。
String()函数可以将任意类型的值转换为字符串,并判断该值是否为null或未定义。

6.Object

JavaScript对象是数据和函数的集合,由一组无序的键值对组成。
所有对象都基于对象类型并具有基本属性和方法。
随着ES6和ES7的引入,JavaScript面向对象编程变得更加强大和优雅。

JavaScript数据类型丰富而强大,因此了解这些数据类型及其特性对于编写高效灵活的代码非常重要。
掌握这些基础知识将有助于开发者更好地利用JavaScript的能力构建复杂而高效的Web应用程序。