Today we are mainly studying the four type detection methods of js. When it comes to js type detection, we have to mention js There are several data types. The types will not be explained in detail. After all, the documents are clear, so we will just list them:
Document address:
Basic data type: String , Boolean, undefined, null, Number, Symbol, BigInt
Reference data types: Object, Array, RegExp...
The detection types we are talking about today include the following four types and Finally, a more convenient tool method written based on jquery:
typeof [Key point]
instanceof
constructor
Object.prototype.toString.call [Key]
Definition
: Operator that can detect basic typesSyntax
: typeof [value]Return value
: ["string", "number", "boolean", "undefined", "object", "function", " symbol", "bigint"]
The result is as shown in the figure:
Although it seems that typeof is very easy to use, we generally know that useful things always have certain flaws, just like people can't be very useful. Perfect
array objects, regular objects, and new digital objects.. .... All returned are Object
NaN / Infinity
are both "number"typeof null is "object"
The result is as shown in the figure:
##3. Common scenarioslet x = {}; if(x != null && typeof x === "object"){ 判断是否是对象,由于typeof null也是返回object,因此要排除它 }复制代码
The result is as shown in the figure Display: [Note] {} will be treated as a code block here, so the first line will report an error
- Definition
: Used to detect whether the prototype attribute of the constructor appears in an instance object On the prototype chain.
- Syntax
: object instanceof constructor
- Return value
: Boolean value
结果如图所示 :
定义
: 通过构造器来判断类型。语法
: target.constructor == "类型名字"
结果如图所示 :
定义
: 返回一个表示该对象的字符串。语法
: Object.prototype.toString.call(params)返回值
: "[object 类型]"
结果如图所示 :
Object.prototype.toString.call()中“[object 类型]”返回的值是由
Symbol.toStringTag
决定
如图所示:
1.代码实现
var class2type = {}; ["Boolean","Number","String","Function","Array","Date","RegExp","Object","Error","Symbol","BigInt","GeneratorFunction"].forEach(item=>{ class2type["[object "+item+"]"] = item.toLowerCase(); }) function toType(obj){ if(obj==null){ return obj+''; } return typeof obj === "object" || typeof obj === "function" ? class2type[toString.call(obj)] || "object" : typeof obj; }复制代码
最后,由于第一次写文章,有些紧张,如有写的不好之处请指出来,作者会继续努力写文章总结,一起加油!打工人!!!
相关免费学习推荐:JavaScript(视频)
The above is the detailed content of Introducing four types of js detection methods and tool methods written based on jquery. For more information, please follow other related articles on the PHP Chinese website!