您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

javascript中的typeof和类型判断详解

2024/6/24 5:11:21发布23次查看
本文主要为大家带来一篇基于javascript中的typeof和类型判断(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。
typeof
ecmascript 有 5 种原始类型(primitive type),即 undefined、null、boolean、number 和 string。我们都知道可以使用typeof运算符求得一个变量的类型,但是对引用类型变量却只会返回object,也就是说typeof只能正确识别基本类型值变量。
var a = abc; console.log(typeof a); // string var b = 123; console.log(typeof b); // number var c = true; console.log(typeof c); // boolean var d = null; console.log(typeof d); // object var f = undefined; console.log(typeof f); // undefined var g; console.log(typeof g); // undefined console.log(typeof x); // undefined
您也许会问,为什么 typeof 运算符对于 null 值会返回 object。这实际上是 javascript 最初实现中的一个错误,然后被 ecmascript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
最后一个比较奇怪,typeof一个不存在的变量x居然返回了object而不是undefined。
我们在来如下代码:
var a = function() { }; console.log(typeof a); // function var b = [1,2,3];  console.log(typeof b); // object var c = { }; console.log(typeof c); // object
对于数组和对象都返回object,因此我们日常开发中一个常见需求就是如何判断变量是数组还是对象。
类型判断
类型判断,一般就是判断是否是数组,是否是空对象。这是针对这个需求,我日常用过或见过的判断方法
判断是否是数组
有数组:var a = [1,2,3,4,5];
方法一:
tostring.call(a); // [object array]方法二:
a instanceof array; //true方法三:
a.constructor == array; //true 第一种方法比较通用,也就是object.prototype.tostring.call(a)的简写。
instanceof和constructor判断的变量,必须在当前页面声明的,比如,一个页面(父页面)有一个框架,框架中引用了一个页面(子页面),在子页面中声明了一个a,并将其赋值给父页面的一个变量,这时判断该变量,array == object.constructor会返回false;
var a = [1,2,3,4,5]; console.log(tostring.call(a)); // [object array]       console.log(a instanceof array); //true console.log(a.constructor == array); //true
判断是否是空对象
有变量:var obj = {};
方法一:
json.stringify(obj); // {}通过转换成json对象来判断是否是空大括号
方法二:
if(obj.id){ //如果属性id存在....}这个方法比较土,大多数人都能想到,前提是得知道对象中有某个属性。
方法三:
function isemptyobject(e) {  var t; for (t in e) return !1; return !0 } //trueisemptyobject(obj); //falseisemptyobject({ a:1, b:2});
这个方法是jquery的isemptyobject()方法的实现方式。
相关推荐:
javascript中typeof的使用方法介绍
javascript中typeof和instanceof的对比用法实例详解
总结js中typeof的用法
以上就是javascript中的typeof和类型判断详解的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product