下面都对变量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区别
now.constructor == Date // 输出: true typeof 'hello' // 输出: string typeof('hello') // 高版本的 js 支持这种写法。输出: string 看起来是这样的: typeof 返回一个对象的类型的名字,即返回一个字符串 ...
javascript中经常使用的对象判断方式包括:typeof、constructor和Object.prototype.toString.call()最近在翻看JohnResig的大作《ProJavaScriptTechniques》,里面讲到了如何做javascript的类型判断的问题。...
我们在定义函数的时候,函数定义的时候函数本身就会默认有一个...typeof obj.prototype);//undefine alert(typeof a.prototype);//object 从上面的例子可以看出函数的prototype 属性又指向了一个对
注意: JavaScript 中数组不是 关联数组。 JavaScript 中只有对象 来管理键值的对应关系。但是关联数组是保持顺序的,而对象不是。 由于 for in 循环会枚举原型链上的所有属性,唯一过滤这些属性的方式是使用 `...
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中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串。如:”number”,”string”,”...
1前言提起JS的数据类型检测,大多数搞前端的朋友都知道有typeof和instanceof两个关键字可以用,其实还有另外2个方法constructor和Obje
constructor 构造函数 Object.prototype.toString.call() 原型链上的Object对象的toString方法 下面我们就来分别介绍一下上面四种方法的适用场景和局限性。 typeof 用来检测数据类型的运算符 使用typeof检测...
2. 判断数据类型typeof、instanceof、Object.prototype.toString.call()、constructor 2.1 判断数组的几种方式 2.2 判断NaN的几种方式 2.3 实现一个函数clone 3. 类数组与数组的区别与转换 4. 数组的常见API 5. bind...
1.typeof 操作符:用于检测给定变量的数据类型 代码如下: var message=”some string”; alert(typeof message)... 2.Object 的实例具有的属性和方法: constructor —— 保存用于创建当前对象的函数. hasOwn
有五种数据判断类型方法typeof 、instanceof、constructor、Object.prototype.toString.call()、jquery.type() 一、typeof方法 typeof是个操作符,可以判断基本数据类型(返回的结果只能是number,string,boolean...
Javascript自带两套类型:基本数据类型(undefined,string,null,boolean,function,object)和对象类型。 但是如果尝试用typeof 来检测对象类型都一律返回”object”并不能加以区分 typeof null // object ...
JS中判断数据类型的4种方法及其实例:typeof、instanceof、constructor、Object.prototype.toString.call();还有判断数据类型的函数
通常用typeof来判断js变量的类型,但很多时候仅仅typeof满足不了要求的。 我写了一个自定义函数来做这个事,判断的比较全面了。 function varType(v){ if ( typeof v=== "object" ){ if (v=== null ) return '...
1、typeof 用来检测数据类型的运算符 typeof value 返回值首先是一个字符串,其次里面包含了对应的数据类型,例如:”number”、”string”...2、instanceof/constructor 检测某一个实例是否属于某一个类 使用instanceof/
判断js中的数据类型有一下几种方法:typeof、instanceof、 constructor、 prototype、 $.type()/jquery.type(),接下来主要比较一下这几种方法的异同。 先举几个例子: var a = "iamstring."; var b = 222; var c= ...