使用 instanceof 判断数据类型
admin
2023-01-20 11:22:31
0

instanceof:的作用就是检测构造函数的 prototype 和 实例的原型__proto__是否相等。

  • String 和 Date 对象同时也属于Object 类型
    console.log(String.prototype.__proto__ === Object.prototype) // true
    console.log(Date.prototype.__proto__ === Object.prototype)  // true
  • 如果通过 字面量 的方式创建字符串,那么无法通过 instanceof 判断某个变量是否是字符串
    let str2 = 'aaaa'
    console.log(str2 instanceof String) // false
    console.log(str2 instanceof Object) // false
  • 通过 new 方式,是可以使用 instanceof 判断 变量是否是字符串。
    let str1 = new String('aaa')
    console.log(str1 instanceof String) // true
    console.log(str1 instanceof Object) // true
    console.log(str1.__proto__ === String.prototype) // true
  • 对于复杂数据类型 对象 和 数组,无论是通过字面量的方式创建,还是 new 的方式,都是可以通过 instanceof 来判断数据类型的
class Dog {
  constructor(name) {
    this.name = name
    this.type = 'dog'
  }
}

let d1 = new Dog('大黄')
let d2 = { name: '肉肉' }
console.log(d1)  //  { name: '大黄', type: 'dog' }
console.log(d2) // { name: '肉肉' }
console.log(d1 instanceof Dog)  // true
console.log(d1 instanceof Object) // true
console.log(d2 instanceof Object)  // true

let arr1 = [1, 2]
let arr2 = new Array('a', 'b')
console.log(arr1 instanceof Array) // true
console.log(arr2 instanceof Array) // true

相关内容

热门资讯

【第一消息】“新畅游互娱.到底... 您好:新畅游互娱这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游...
终于懂了“桂麻圈.开挂神器?”... 网上科普关于“桂麻圈有没有挂”话题很是火热,小编也是针对桂麻圈作*弊开挂的方法以及开挂对应的知识点,...
重磅消息“摇钱树拼三张.到底是... 网上科普关于“摇钱树拼三张有没有挂”话题很是火热,小编也是针对摇钱树拼三张作*弊开挂的方法以及开挂对...
【第一财经】“么么棋牌.辅助开... 【第一财经】“么么棋牌.辅助开挂神器?”确实真的有挂您好,么么棋牌这个游戏其实有挂的,确实是有挂的,...
【第一财经】“新玉海楼茶苑.到... 有 亲,根据资深记者爆料新玉海楼茶苑是可以开挂的,确实有挂(咨询软件无需...
玩家分享攻略“土豪赢三张.可以... 您好:土豪赢三张这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...
我来教教您“讯奇麻将斗牛.辅助... 网上科普关于“讯奇麻将斗牛有没有挂”话题很是火热,小编也是针对讯奇麻将斗牛作*弊开挂的方法以及开挂对...
玩家攻略科普“同城乐吧510k... 网上科普关于“同城乐吧510k有没有挂”话题很是火热,小编也是针对同城乐吧510k作*弊开挂的方法以...
美国全面封锁进出委内瑞拉油轮,... 【文/观察者网专栏作者 毒菇先生】2025年12月10日,美国在加勒比海委内瑞拉海岸附近扣押了一艘油...
终于懂了“龙泰棋牌.真的有挂吗... 您好:龙泰棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏...