使用 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

相关内容

热门资讯

美防长:对伊朗战争已耗资375... △美国国防部长赫格塞思(资料图)央视记者当地时间21日获悉,美国国防部长赫格塞思表示,美国对伊朗战争...
在全国抗议声中,泽连斯基解除乌... 据乌克兰媒体《基辅独立报》报道,乌克兰总统泽连斯基解除了乌克兰武装部队总司令瑟尔斯基的职务,并任命联...
也门胡塞武装:停靠沙特港口船只... 新华社科威特城7月21日电(记者尹炣)萨那消息:也门胡塞武装20日警告国际航运公司称,与沙特港口开展...
特朗普:胡塞武装若封锁红海,美... 新华社华盛顿7月21日电(记者黄强 徐剑梅)美国总统特朗普21日在白宫会见到访的黎巴嫩总统奥恩时表示...
AI第一城|GOAI世界人工智... 7月21日上午,GOAI世界人工智能开源大赛(Global Open-source AI Chall...
刀闸阀行业解读:申奥阀门的技术... 在工业流体控制领域,高粘度介质、强腐蚀环境以及含固体颗粒的复杂工况,长期是制约管路系统安全运行的关键...
原创 华... 现在的手机屏幕做得是越来越大了,iPhone17 Pro Max也做了6.9英寸大屏,国产自然不能输...
WAIC2026:没有花架子,... 齐鲁晚报·齐鲁壹点 记者 任磊磊 “逛不完,根本逛不完!”在世界人工智能大会展馆现场,不少观众一边逛...
欧洲议会外委会首次派团访华,王... 2026年7月21日,中共中央政治局委员、外交部长王毅在北京会见欧洲议会外事委员会主席麦克阿里斯特率...
大熊猫“福虎”嘴角生疮,官方回... 7月21日,南京紫清湖野生动物世界发布通告,称“福虎”自嘴角边长疮至今,园区一直在中国大熊猫保护研究...