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

typeof和constructor总结

阅读更多

下面都对变量test的值进行说明。有一点可以先说明的是,typeof的值始终只有这样几个:“number”、“string”、“Boolean”、“object”、“function”和“undefined”、“unknown”。

注意,typeof为“unknown”的情况特别罕见,在微软的文档中几乎没有提到,笔者也是在“typeof TdcObj.recordset.recordcount”的时候才发现这个特例的。

而对象的constructor属性值则视情况而论。

typeof和constructor的比较

 

   

typeof 返回的都是 String

constructor 返回的是对象

其他说明

// 这里省略了 ( )

var test = new Object;

// 上面等同于

var test = {};

object

Object

任何自定义对象 (Object) typeof 都是 object

var test = new Array(123,456);

// 上面等同于

var test = [123,456];

object

Array

var test = function(){};

// 上面等同于

var test = new Function();

Function

Function

但是请注意,如果是

var oT = new test();

typeof oT 等于 object

function fnMyTest(){}

// 这里省略了 ()

var test = new fnMyTest;

object

fnMyTest

要特别注意的是,自定义函数的 constructor 等于这个定义的函数对象,又,例如:

(new Date).constructor 等于 Date ,它的 typeof 等于 object

var test = null;

object

发生错误,无法获取 constructor ,虽然它的 tyepof 是“ object ”,这就是它的特殊性

这种情况是非常特殊的,读者朋友要特别小心。在程序运行过程中常常会发生这样的情况的,在你并不知道已经为 null 的情况下却还在求 test.constructor 的内容

var test = undefined;

undefined

null 一样,会发生错误,因为它不是一个有效的变量或对象

var test = 9897;

number

Number

var test = “My Test String”;

string

String

 




分享到:
评论

相关推荐

    JS:typeof instanceof constructor prototype区别

    JS:typeof instanceof constructor prototype区别

    typeof、instanceof、constructor 的联系、区别、应用场景(js 类型判断)

    now.constructor == Date // 输出: true typeof 'hello' // 输出: string typeof('hello') // 高版本的 js 支持这种写法。输出: string 看起来是这样的: typeof 返回一个对象的类型的名字,即返回一个字符串 ...

    javascript中怎么做对象的类型判断

    javascript中经常使用的对象判断方式包括:typeof、constructor和Object.prototype.toString.call()最近在翻看JohnResig的大作《ProJavaScriptTechniques》,里面讲到了如何做javascript的类型判断的问题。...

    深入分析js中的constructor和prototype

    我们在定义函数的时候,函数定义的时候函数本身就会默认有一个...typeof obj.prototype);//undefine alert(typeof a.prototype);//object 从上面的例子可以看出函数的prototype 属性又指向了一个对

    Array, Array Constructor, for in loop, typeof, instanceOf

    注意: JavaScript 中数组不是 关联数组。 JavaScript 中只有对象 来管理键值的对应关系。但是关联数组是保持顺序的,而对象不是。 由于 for in 循环会枚举原型链上的所有属性,唯一过滤这些属性的方式是使用 `...

    javascript常用函数归纳整理

    1.typeof、constructor、instanceof对数组的判断 代码如下:var arr = [1,5,6,9,8,5,4]; //var arr = new Array(1,5,6,9,8,5,4); console.log(typeof arr);//object console.log(arr.constructor());//[] console....

    JavaScript中判断对象类型的几种方法总结

    我们知道,JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串。如:”number”,”string”,”...

    blateyang#FrontEndNotes#JS数据类型检测的坑和通用检测方法1

    1前言提起JS的数据类型检测,大多数搞前端的朋友都知道有typeof和instanceof两个关键字可以用,其实还有另外2个方法constructor和Obje

    js数据类型检测总结

    constructor 构造函数 Object.prototype.toString.call() 原型链上的Object对象的toString方法 下面我们就来分别介绍一下上面四种方法的适用场景和局限性。 typeof 用来检测数据类型的运算符 使用typeof检测...

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

    2. 判断数据类型typeof、instanceof、Object.prototype.toString.call()、constructor 2.1 判断数组的几种方式 2.2 判断NaN的几种方式 2.3 实现一个函数clone 3. 类数组与数组的区别与转换 4. 数组的常见API 5. bind...

    javascript学习笔记(二) js一些基本概念

    1.typeof 操作符:用于检测给定变量的数据类型 代码如下: var message=”some string”; alert(typeof message)... 2.Object 的实例具有的属性和方法: constructor —— 保存用于创建当前对象的函数. hasOwn

    JavaScript判断数据类型有几种方法及区别介绍

    有五种数据判断类型方法typeof 、instanceof、constructor、Object.prototype.toString.call()、jquery.type() 一、typeof方法 typeof是个操作符,可以判断基本数据类型(返回的结果只能是number,string,boolean...

    JavaScript数据类型判定的总结笔记

    Javascript自带两套类型:基本数据类型(undefined,string,null,boolean,function,object)和对象类型。 但是如果尝试用typeof 来检测对象类型都一律返回”object”并不能加以区分 typeof null // object ...

    判断数据类型的方法.html

    JS中判断数据类型的4种方法及其实例:typeof、instanceof、constructor、Object.prototype.toString.call();还有判断数据类型的函数

    JavaScript基于自定义函数判断变量类型的实现方法

    通常用typeof来判断js变量的类型,但很多时候仅仅typeof满足不了要求的。 我写了一个自定义函数来做这个事,判断的比较全面了。 function varType(v){ if ( typeof v=== "object" ){ if (v=== null ) return '...

    JS中检测数据类型的几种方式及优缺点小结

    1、typeof 用来检测数据类型的运算符 typeof value 返回值首先是一个字符串,其次里面包含了对应的数据类型,例如:”number”、”string”...2、instanceof/constructor 检测某一个实例是否属于某一个类 使用instanceof/

    js 判断数据类型的几种方法

    判断js中的数据类型有一下几种方法:typeof、instanceof、 constructor、 prototype、 $.type()/jquery.type(),接下来主要比较一下这几种方法的异同。 先举几个例子: var a = "iamstring."; var b = 222; var c= ...

Global site tag (gtag.js) - Google Analytics