`
jordan_micle
  • 浏览: 245801 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Typeof与Object.Prototype.ToString.Apply

阅读更多

首先来看一下两者是怎么对待undefined的:

  1. alert(typeof undefined);
  2. alert(Object.prototype.toString.apply(undefined));

结果为:

undefined
[object Object]

由此看出,在Object.prototype.toString.apply眼里undefined也是Object。

接着来看一下是怎么对待null的:

  1. alert(typeof null);
  2. alert(Object.prototype.toString.apply(null));

结果为:

object
[object Object]

大家意见一致。typeof说:你可以不穿衣服来,但你一定要来!邪恶啊~

分享到:
评论

相关推荐

    前端Javascript相关面试基础问答整理md

    **2.3 使用 `Object.prototype.toString.call()`** - 该方法可以准确地检测出数据的类型,包括 `null` 和 `undefined`。 - 示例代码: ```javascript Object.prototype.toString.call(''); // "[object String]" ...

    JavaScript高阶第二天.xmind

    4.call()的使用场景:数据类型判断 Object.prototype.toString.call(); 5.apply()的使用场景:求最值 Math.max() 传入参数的最大值 6.bind()的使用场景: bind()不会立即调用函数执行,一般用于改变定时器中的...

    dialogAnalysis:对话分析

    Object.prototype.toString.call(RegExp) 对象自身属性检测 {}.hasOwnProperty(prop) Object.prototype.hasOwnProperty.call(o, prop); // 安全的检测 7.1Function 7.1.1 apply和call 7.2RegExp 7

    ext js 4.1apply && override

    ### Ext JS 4.1中的`Ext.apply`与`Ext.override` #### 一、Ext.apply详解 `Ext.apply`是Ext JS框架中的一个核心方法,主要用于对象的属性合并。此方法能够将一个或多个对象的属性复制到目标对象中,从而实现对象...

    javascript

    在某些旧版本的IE中,`Object.prototype.toString.apply(null)`可能返回`"[object Object]"`,这是个已知的兼容性问题。 JavaScript中的表达式是程序的基本构建块,它们可以产生值。例如,常量、变量、关键字、函数...

    JavaScript 24道面试题及答案.docx

    判断数据类型的方法有多种,包括使用 typeof 操作符、A instanceof B、B.constructor == A、Object.prototype.toString.call() 等。其中,Object.prototype.toString.call() 是最准确最常用的方式。 浅拷贝和深拷贝...

    js.rar(react初学者简单测试用babel.js,react-development.js,react-dom.js)

    return t.default=e,t}(m),v=r(629),g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},b=t.availablePlugins={},E=t.availablePresets={};t.buildExternalHelpers=y....

    javascript基本类型详解

    js中一共5个原始值,6个typeof能判断的,9个原生的内置的构造函数。  这569,构成了js语言的基础。...使用Object.prototype.toString.apply()。  if(value&&typeof value ===’object’&&value.constructor ===

    JavaScript 24道面试题和答案.docx

    判断数据类型的方法除了typeof,还可以使用instanceof、constructor属性以及Object.prototype.toString.call()。instanceof用于检测对象是否为特定构造函数的实例,但无法检测null和undefined。constructor属性可以...

    js代码-公用方法总结

    - `Function.prototype.apply()`: 与call类似,但接受一个数组或类数组作为参数。 - `Function.prototype.bind()`: 创建一个新的函数,当被调用时,它的this值是绑定的,并且最初的参数是固定的。 6. **ES6新增...

    前端vue和js相关的面试题,初级,中级面试必问

    要判断一个对象是否为数组,可以使用多种方式,如 `Object.prototype.toString.call([])`、`Array.isArray([])` 或者检查 `instanceof Array` 和 `proto`。需要注意的是,`typeof` 对于数组和其他复杂类型的判断并不...

    hls.min.js

    function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define;.amd?define([],e):"object"==typeof exports?exports.Hls=e():t.Hls=e()}(this,function...

    json实现前后台的相互传值详解.docx

    var type = typeof object; if ('object' == type) { if (Array == object.constructor) type = 'array'; else if (RegExp == object.constructor) type = 'regexp'; else type = 'object'; } switch (type) ...

    2023大厂前端面试精选—基础篇.pdf

    2. **数据类型检测**:常见的检测方法有`typeof`、`instanceof`、`Object.prototype.toString.call()`以及`Array.isArray()`等。 3. **null与undefined的区别**:null是一个具体的值,表示"无"或"空",而undefined...

    flash action script 经典字典教程大全,学flash必备

    apply Function.apply() Arguments Arguments 类 Array Array 类、Array() asfunction asfunction asin Math.asin() atan Math.atan() atan2 Math.atan2() attachAudio MovieClip.attachAudio() ...

    js代码-手写call

    const toString = Object.prototype.toString; console.log(toString.call(obj1)); // "[object Object]" console.log(customCall(toString, obj2)); // "[object Object]" ``` 此外,`call`在继承和模拟类行为时也...

Global site tag (gtag.js) - Google Analytics