环球设计网站网站的定义
web/
2025/9/29 7:16:21/
文章来源:
环球设计网站,网站的定义,网站模板能上传图片,在网上做效果图赚钱的网站正确判断js数据类型 总结记录
判断js中的数据类型有一下几种方法#xff1a;typeof、instanceof、 constructor、 prototype、 三方库。
js六大数据类型
number#xff1a; 数字#xff0c;整数、浮点数等等#xff0c;
string#xff1a; 单引号或者双引号来说明typeof、instanceof、 constructor、 prototype、 三方库。
js六大数据类型
number 数字整数、浮点数等等
string 单引号或者双引号来说明
Boolean 返回true和false这两个值不一定对应1和0
object 对象可以执行new操作符后跟要创建的对象类型的名称来创建。
null 只有一个值得数据类型逻辑上讲null值表示一个空对象指针。
undefined未定义使用var声明变量但未对其初始化时变量的值就是undefined。1、typeof
在实际的项目应用中typeof只有两个用途就是检测一个元素是否为undefined或者是否为function。原因如下JavaScript Garden整理出来了如下表格
Value function typeof
-------------------------------------
foo String string
new String(foo) String object
1.2 Number number
new Number(1.2) Number object
true Boolean boolean
new Boolean(true) Boolean object
new Date() Date object
new Error() Error object
[1,2,3] Array object
new Array(1, 2, 3) Array object
new Function() Function function
/abc/g RegExp object
new RegExp(meow) RegExp object
{} Object object
new Object() Object object
2、instanceof
var a [1,2,3];
var b new Date();
var c function(){};alert(a instanceof Array) ---------------gt; true
alert(b instanceof Date)
alert(c instanceof Function) ------------gt; true
alert(c instanceof function) ------------gt; false
3、constructor
var a [1,2,3];
var b new Date();
var c function(){};alert(a.constructor Array) ----------gt; true
alert(b.constructor Date) -----------gt; true
alert(c.constructor Function) -------gt; true
注 使用instaceof和construcor,被判断的引用类型Object Array必须是在当前页面声明的比如一个页面父页面有一个框架框架中引用了一个页面子页面在子页面中声明了一个array并将其赋值给父页面的一个变量这时判断该变量Array object.constructor;会返回false原因1、array属于引用型数据在传递过程中仅仅是引用地址的传递。2、每个页面的Array原生对象所引用的地址是不一样的在子页面声明的array所对应的构造函数是子页面的Array对象父页面来进行判断使用的Array并不等于子页面的Array。
4、Object.prototype.toString通用
Object.prototype.toString.call()
var toString Object.prototype.toString;toString.call(undefined); -------------gt; [object Undefined]
toString.call(null); -------------gt; [object Null]
toString.call(new Date); -------------gt; [object Date]
toString.call(new String); -------------gt; [object String]
toString.call(Math); -------------gt; [object Math]
jQuery.type()源码
var class2type {} ;
Boolean Number String Function Array Date RegExp Object Error.split( ).forEach(function(e,i){class2type[ [object e ] ] e.toLowerCase();
}) ;function _typeof(obj){if ( obj null ){return String( obj );}return typeof obj object || typeof obj function ?class2type[ class2type.toString.call(obj) ] || object :typeof obj;
}
注数组还可以用 Array.isArray(); 或者根据其具有的方法去判断。不再细述
原文地址https://segmentfault.com/a/1190000016940601
更多专业前端知识请上
【猿2048】www.mk2048.com
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83769.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!