typeof null: 返回 "object"。 这是一个已知的 JavaScript 的历史 Bug,实际上 null 是一个基本数据类型,而不是对象。使用 === 运算符时,null 可以与 undefined匹配,但它们的类型不同。 typeof undefined: 返回 "undefined"。 typeof 对象: 返回 "object"。对象可能是普通对象、数组、函数或由对象转换而来的...
typeof是一个一元运算符,它返回的结果始终是一个字符串,对不同的操作数,它返回不同的结果。 具体的规则如下: 一、对于数字类型的操作数而言, typeof 返回的值是 number。比如说:typeof(1),返回的值就是number。 上面是举的常规数字,对于非常规的数字类型而言,其结果返回的也是number。比如typeof(NaN),NaN在...
当typeof返回"function"时,表示值是一个函数。例如: 代码语言:javascript 复制 functionsayHello(){console.log("Hello!");}typeofsayHello;// "function" 特殊情况 typeof操作符有一些特殊情况需要注意。例如,它不能区分数组和对象,都会返回"object"。如果需要区分它们,可以使用Array.isArray()函数。 代码语言:jav...
综上可以看出,对于数组、对象来说,其关系错综复杂,使用typeof都会统一返回 “object”字符串。 二、Object.prototype.toString.call() toString()方法返回一个表示该对象的字符串。 每个对象都有一个toString()方法,当该对象被表示为一个文本值时,或者一个对象以预期的字符串方式引用时自动调用。默认情况下,toString...
typeof 的代码写法返回结果typeof 数字numbertypeof 字符串stringtypeof 布尔型booleantypeof 对象objecttypeof 方法functiontypeof nullobjecttypeof undefinedundefined 备注 1:为啥typeof null的返回值也是 object 呢?因为 null 代表的是空对象。备注 2:typeof NaN的返回值是 number,上一篇文章中讲过...
我们会发现一个问题,就是typeof来判断数据类型其实并不准确。比如数组、正则、日期、对象的typeof返回值都是object,这就会造成一些误差。 所以在typeof判断类型的基础上,我们还需要利用Object.prototype.toString方法来进一步判断数据类型。 我们来看看在相同数据类型的情况下,toString方法和typeof方法返回值的区别: ...
2. typeof的返回值 typeof运算符的返回类型为字符串,值包括如下几种: 1. 'undefined' --未定义的变量或值 2. 'boolean' --布尔类型的变量或值 3. 'string' --字符串类型的变量或值 4. 'number' --数字类型的变量或值 5. 'object' --对象类型的变量或值,或者null(这个是js历史遗留问题,将null作为...
所以对这个返回值的处理首先就是要判断其类型,进而使用 instanceof ,但是这个方法的调用有点记不清了,是 arr instanceof Array 还是 Array instanceof arr 呢? 由因及果 有这样的疑惑是因为typeof,typeof(value)经常用来获取(不是判断)变量的类型 ,可惜不能用来判断数组和对象,因为返回的都是 object 。
typeof未定义的变量不会报错,返回"undefiend" typeof(null) -> "object": 遗留已久的bug typeof无法区别的数组与普通对象:typeof([]) -> "object" typeof(NaN) -> "number" 实例 优点:能够数组类型、对象和函数,适合用于判断自定义的类实例对象 缺点:数字,布尔,字符串基本数据不能判断 ...