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方法
目录
相关文章
|
2月前
|
JavaScript 前端开发
typeof的作用
typeof的作用
15 0
|
2月前
|
JavaScript 前端开发 算法
undefined与null的区别
在JavaScript中,undefined和null都表示变量未被赋值或值缺失,但它们在使用场景上有一些区别。 - **`语义不同`**:undefined表示一个变量未被赋值或者声明后未进行初始化。而null表示一个变量被明确地设置为无值或者表示空值的概念。 - **`类型不同`**:undefined是一种基本数据类型,而null是一个引用类型。 - **`条件判断`**:在条件判断中,使用if (variable === undefined)或者if (variable === null)可以进行区分。
|
10小时前
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
|
16小时前
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))
|
11月前
null和undefined的区别?
null和undefined的区别?
|
8月前
|
SQL
根据一个类型 获取该类型的 特殊判断 优雅写法
根据一个类型 获取该类型的 特殊判断 优雅写法
|
11月前
|
JavaScript 安全 前端开发
null和undefined的区别有哪些?
相同点 1.null和undefined都是js的基本数据类型 2.undefined和null都是假值(falsy),都能作为条件进行判断,所以在绝大多数情况下两者在使用上没有区别
1176 2
|
12月前
|
存储 数据库
案例09-数据类型不一致导致equals判断为false
数据类型不一致导致equals判断为false
案例09-数据类型不一致导致equals判断为false
|
11月前
|
JavaScript 前端开发 Java
为什么使用typeof判断数据类型的时候null出来是object?
为什么使用typeof判断数据类型的时候null出来是object?
null和undefined区别
null和undefined区别
48 0

热门文章

最新文章