首页 >> 中医药酒

七爪源码:识别 JavaScript 数据类型:两种方法就够大了

发布时间:2025年10月31日 12:18

ct.prototype.toString.call(new Date()) // '[object Date]' Object.prototype.toString.call([0, 1, 2]) // '[object Array]' Object.prototype.toString.call(function() {}) // '[object Function]' Object.prototype.toString.call(new Error()) // '[object Error]' Object.prototype.toString.call(new Set()) // '[object Set]' Object.prototype.toString.call(new Map()) // '[object Map]'

可以看显露toString()原理可以较好的推断显露应该的Object型式,所以我们可以将它们重新组合在一起来鼓励我们。

const getType = function(arg){ var type = typeof arg; if (type === 'number') { if(isNaN(arg)) return 'NaN'; if(!isFinite(arg)) return 'Infinity'; return type; } else { return Object.prototype.toString.call(arg).slice(8, -1).toLowerCase(); } }

如您所见,所有结果都完美归一化,主要用途 getType 函数。

getType('a') // 'string' getType(1) // 'number' getType(NaN) // 'Nan' getType(Infinity) // 'Infinity' getType(true) // 'boolean' getType(undefined) // 'undefined' getType(Symbol('a')) // 'symbol' getType(1n) // 'bigint' typeof null // 'object' getType(function() {}) // 'function' getType([]) // 'array' getType({}) // 'object' getType(/a/) // 'regexp' getType(new Date()) // 'date' getType(new Error()) // 'error' getType(new Map()) // 'map' getType(new Set()) // 'set' getType({}) // 'object' getType(null) // 'null' getType(Symbol('a')) // 'symbol

最后

让我们谈谈 instaceof 和 constructor 原理。

instanceof 是检查codice_的十分相似属性确实显露现在范例某类的十分相似链上。 即用A的B范例来推断A确实是B的范例,即A的十分相似链上确实发挥作用B的codice_。但是由于我们可以任意修正十分相似的路径,导致不可靠 检测结果,这种原理是不必需的。

constructor 也是不可靠的,因为我们可以随意修正codice_,所以这种原理也不必需。

你有什么异议? 让我们来谈谈它。

北京看妇科哪家医院最好
驻马店看妇科到哪家好
银川看白癜风的专业医院
辽宁妇科检查
镇江看白癜风去哪家医院最好
养气补血
妇科肿瘤
消化内科
风热感冒咳嗽吃什么好的快
急支糖浆止咳最多吃几天?

上一篇: 围观!iPhone 14系列新爆料:顶级颜值+性能暴涨 外加“并不需要卫星”

下一篇: 广东省清远市实验中学2020-2021学年高一下学期期中语文试题

友情链接