JS-Learning | 数据类型(基本类型和引用类型的定义与检测)

本文详细介绍了JavaScript中的数据类型,包括基本类型和引用类型。基本类型包括Undefined、Null、Boolean、Number、String和Symbol,它们是按值访问的。引用类型如Object、Array等则是按引用访问的,不能直接操作内存空间。文章还探讨了typeof和instanceof操作符在检测数据类型时的应用。
摘要由CSDN通过智能技术生成

JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已,可以理解为变量占了一个坑,具体填的是黄金还是泥土就要看自身造化了……

ECMAScript变量可能包含两种不同数据类型的值:基本类型值引用类型值。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。

基本数据类型

基本数据类型有六种:Undefined、Null、Boolean、Number、String和Symbol。
这五种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。
基本数据类型比较简单,这里提供一些注意点:

  • Undefined类型:只有一个值(即undefined),变量声明但未对其初始化,该变量的值就是undefined。
  • Null类型:只有一个值(即null),null值表示一个空对象指针。
null == undefined         // true
  • Boolean类型:只有两个字面值(即true和false)。

    转型函数Boolean()

  • Number类型:使用IEEE754格式来表示整数和浮点数值,其中有一个特殊数值NaN,用于表示一个本来要返回数值的操作数但未返回数值的情况。

NaN == NaN             // false

转型函数Number()、parseInt()、parseFloat()

  • String类型:转型函数toString()、String()
    null和undefined没有toString()方法,所以用String()函数可以返回这两个值的字面量。

typeof操作符

检测给定变量的数据类型,对一个值使用typeof操作符可能返回下列某个字符串

  • “undefined”——如果这个值未定义
  • “boolean”——如果这个值是布尔值
  • “string”——如果这个值是字符串
  • “number”——如果这个值是数值
  • “object”——如果这个值是对象或null
  • “function”——如果这个值是函数

引用类型

引用类型的值是保存在内存中的对象,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。为此,引用类型的值是按引用访问的。
ECMAScript提供了很多原生引用类型:

  • Object类型
  • Array类型
  • Date类型
  • RegExp类型
  • Function类型
  • 基本包装类型:3个特殊的引用类型(Boolean、Number和String
    每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。自动创建的基本包装类型的对象只存在于一行代码的执行瞬间,然后立即被销毁,所以我们不能在运行时为基本类型值添加属性和方法
  • 单体内置对象:Global对象和Math对象

instanceof操作符

在检测引用类型的值时,typeof操作符的用处就不大了。通常,我们并不是想知道某个值是对象,而是想知道它是什么类型的对象。为此,ECMAScript提供了instanceof操作符。语法如下:

result = variable instanceof constructor

所有引用类型的值都是Object的实例,因此,在检测一个引用类型值和Object构造函数时,instanceof操作符始终会返回true。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值