Javascript的typeof为什么会返回function
PHP中文网
PHP中文网 2017-04-11 11:33:00
0
2
1478
  • 这是 W3C的描述:
    对变量或值调用 typeof 运算符将返回下列值之一

    1. undefined - 如果变量是 Undefined 类型的

    2. boolean - 如果变量是 Boolean 类型的

    3. number - 如果变量是 Number 类型的

    4. string - 如果变量是 String 类型的

    5. object - 如果变量是一种引用类型或 Null 类型的

  • 但是,为为什么:

    typeof(Function);
    typeof(new Function);
    typeof(Array);
    // 都返回'function'
  • 这是我在segmentfault另一个问题上看到的

    • typeof可以检测基本类型包括 undefined, string, number, boolean,但是对于检测对象就不靠谱了。不只是Array,javascript中的对象,包括 Date, String, Boolean, Number, Object, Function, Array, RegExp, Error 使用typof只会返回 "object"。

  • 求解释:

    • 为什么typeof为什么会有返回function的情况?

    • 或者请大牛告诉:typeof到底有哪些返回类型?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
大家讲道理

MDN中的说明

いいねを押す +0
巴扎黑
  • 数据类型检测

    1. typeof(对变量或值调用 typeof 运算符将返回(字符串)下列值之一)

      1. undefined - Undefined类型

      2. number - Number类型

      3. boolean - Boolean类型

      4. string - String类型

      5. symbol - Symbol类型(ECMAScript6新增)

      6. function - 函数对象([[Call]]在ECMA-262条款中实现了)

      7. object - 引用类型 或 Null类型

    typeof(Function) // function (Function是函数对象)
    typeof(new Function) // function (new Function也是是函数对象,同等:var func = function(){})
    typeof(Array) // function (Array是函数对象)
    typeof(new Array) // object(实例化的Array就是object)
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート