typeof 类型判断

简介: typeof 类型判断

typeof 可以返回的类型为:number、string、boolean、undefined、object、function

在 ECMA 中,除了 Number,String,null,undefined,Boolean,其它的实例都会归为 object。因此 typeof 对于检测对象就不靠谱了,不只是Array,javascript中的对象,包括 Date, String, Boolean, Number, Object, Function, Array, RegExp, Error 使用 typeof 只会返回 “object”。

typeof(undefined) // "undefined"
typeof(null) // "object"
typeof([1,2]) // "object"
typeof({a:1}) // "object"
typeof('123') // "string"
typeof(1) // "number"
typeof(true)  // "boolean"
typeof(Array) // "function"
typeof(() => {})  // typeof 箭头函数返回也是 "function"
typeof(typeof(null))   // "string"
typeof(typeof(undefined))  // "string"
typeof(undefined) === undefined // false
typeof(undefined) === "undefined" // true

而创建 Function 或者 Array 这些类型的实例的时候,其实都是基于 Object 实例进行的一种扩展。只是多了一些特有属性。判断一个对象是一个数组还是普通的Object可以使用 Array.isArray([]) 或 [] instanceof Array 的方法。然而这个方法会因为在跨 iframe 的情况下失效。最简单的办法是 Object.prototype.toString.call(array) 的方式。因为只有通过 Object 的原型的 toString 方法才能拿到每个实例的[class]内部属性。

arr = []
arr instanceof Array // instanceof判断方法
Array.prototype.isPrototypeOf(arr) // 原型链判断
Array.isArray(arr) // JS 数组方法Array中的isArray方法
目录
相关文章
|
6月前
|
JavaScript 前端开发
typeof的作用
typeof的作用
29 0
|
11天前
如何判断`instanceof`操作符的返回值是否为`true`
`instanceof`操作符用于判断一个对象是否是指定类型或其子类型的实例。如果对象是指定类型的实例,则返回`true`,否则返回`false`。例如:`if (obj instanceof MyClass)` 会检查 `obj` 是否是 `MyClass` 类或其子类的实例。
|
12天前
|
前端开发 JavaScript
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
|
6月前
|
JavaScript
undefined会变为null吗?
undefined会变为null吗?
|
JavaScript 安全 前端开发
null和undefined的区别有哪些?
相同点 1.null和undefined都是js的基本数据类型 2.undefined和null都是假值(falsy),都能作为条件进行判断,所以在绝大多数情况下两者在使用上没有区别
1220 2
|
存储 数据库
案例09-数据类型不一致导致equals判断为false
数据类型不一致导致equals判断为false
案例09-数据类型不一致导致equals判断为false
|
JavaScript 前端开发 Java
为什么使用typeof判断数据类型的时候null出来是object?
为什么使用typeof判断数据类型的时候null出来是object?
下一篇
无影云桌面