js数据类型及其判断

JavaScript 是一个弱类型语言,当操作涉及不匹配的类型时,它会进行隐式类型转换,不会抛出类型错误。

一、七种基本类型

Null,Undefined,Boolean,Number,String,Symbol,BigInt。

除了 Object 以外,所有类型都定义不可变值(原始值)。除了Null以外都可以用typeof去判断类型。

二、引用类型

都叫对象,Object。

常用的三种引用类型:

Object,
Array,
Function

其他:

Date、RegExp、Map、Set…

三、判断数据类型的方法

1、判断基本类型 typeof

基本数据类型除了 null 都可以用 typeof 判断

语法typeof 变量名
返回值:类型 string


类型             |       typeof 返回值        |       对象包装器
Null            |       "object"            |       不适用
Undefined       |       "undefined"         |       不适用
Boolean         |       "boolean"           |       Boolean
Number          |       "number"            |       Number
String          |       "string"            |       String
Symbol          |       "symbol"            |       Symbol
BigInt          |       "bigint"            |       BigInt

2、判断引用类型 instanceof

instanceof 运算符用来判断一个构造函数的 prototype 属性所指向的对象是否存在另外一个要检测对象的原型链中。

语法实例对象 instanceof 构造函数
返回值boolean

a instanceof b: 判断 a 的原型链上是否有 b

实现一个instanceof

Object.isPrototypeOf(obj):判断 Object 是否在 obj 的原型链上出现过。

🌰 实现case1:

function _instanceof(left, right) {
	// 🏷 敲重点
    return right.prototype.isPrototypeOf(left);
}

🌰 实现case2:

function _instanceOf(left, right) {
    if (left === null || (typeof left !== 'function' && typeof left !== 'object') ) {
        return false;
    }
    // 🏷 敲重点
    while (left.__proto__) {
        if (left.__proto__ === right.prototype) {
            return true;
        }
        left = left.__proto__;
    }
    return false;
}

3、判断数组 Array.isArray(obj)

语法Array.isArray(obj)
返回值boolean

4、判断所有类型 Object.prototype.toString.call(obj)

判断任何类型都可以使用这个方法。

语法Object.prototype.toString.call(obj)
返回值:字符串 "[object type]"type 是数据类型

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值