js判断类型的方法

在实际项目开发中,可能经常会遇到数据类型的判断,我也是经常去度娘,没有仔细的总结过,最近闲下来就做一个总结吧。

javascript的基本数据类型有:Undefined、Null、Boolean、Number、String。还有一种引用数据类型Object,且在Object的基础上继承出更多的类型,如Array,Date,Function等,当然还包括我们自己创建的构造函数;

那怎样比较严谨的去判断数据的类型,在开发中就显得比较重要,度娘的时候看到了很多方法,归结起来无非三种:

1、constructor(构造函数)

constructor 属性返回对创建此对象的数组函数的引用,(a.constructor == Array)  // a实例所对应的构造函数是否为Array? true or false

console.log([].constructor == Array);
console.log({}.constructor == Object);
console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(true.constructor == Boolean);

2、instanceof(实例)

instance,故名思义,实例,例子,所以instanceof 用于判断一个变量是否某个对象的实例

var a=[];
console.log(a instanceof Array) //返回true

3、toString

该方法比较复杂,就不做过多的解释,具体如下:

var arr = [];
Object.prototype.toString.call(arr)==‘[object Array]‘;

该方法是比较严谨的,对应的其他类型数据判断为:[object Object],[object String],[object Number],[object Boolean]

参考其他博主的经验以及部分个人总结,如有侵权,请及时联系本人,QQ:435641688,谢谢

时间: 2024-11-12 09:48:44

js判断类型的方法的相关文章

js判断类型为数字的方法实现总汇——原生js判断isNumber()

方法一[推荐]: 最容易想到的是用typeof来判断是否是number类型 ,但是如果为NaN会被认为也是number类型,因此我们需要使用isNaN来排除NaN的情况. function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) } 方法二: isNaN(obj)   等价于isFinite().Infinity在js表示数字的无穷大,判断是否可用做数字的最佳方法则是isFinite(),因为该方法会筛除掉

JS判断类型

做为一个新入代码坑的码农,一点点小东西也需要记录下啊,俗话说:好记性不如烂笔头啊!!! 判断一个数据的类型是不是object:  typeof data == 'object' 判断一个数据的类型是不是function:  typeof data == 'function' 判断一个数据的类型是不是string:  typeof data == 'string' 判断一个数据的类型是不是number:  typeof data == 'number'

【笔记】js Function类型 内部方法callee

运用function实现阶乘 以往的做法是如下的 function factorial(num){ if(num <= 1){ return 1; }else{ return num * factorial(num - 1); } } 但是如果一旦函数名改变 函数内部的递归调用行数也要进行改变 重用性很不好所以可以使用function 内部的callee()方法,此方法是function 类型内部的一个属性,它是一个指针指向函数参数对象的函数,即callee所在函数的本身 所以以后的阶乘可以这样

JS浏览器类型推断方法

在网站的前端开发,浏览器兼容性问题这已经让我们抢,Chrome但也生出不知道多少麻烦,我们增加. 浏览器兼容性将由前端开发框架解决的第一个问题.要解决的兼容性问题必须首先准确推断浏览器的类型和它的版本号. JavaScript是前端开发的主要语言.我们能够通过编写JavaScript程序来推断浏览器的类型及版本号. JavaScript推断浏览器类型一般有两种办法.一种是依据各种浏览器独有的属性来分辨,还有一种是通过分析浏览器的userAgent属性来推断的.在很多情况下.值推断出浏览器类型之后

3中判断类型的方法

typeof  不能判断 arr  undefined  null ... 1.arr.constructor==Array 2.arr instanceof Array 3.Object.prototype.toString.call(arr)=='[object Array]'

5种判断类型的方法

Array.prototype.length = 100;var arr = new Array(1,2,3);console.log(arr._proto_ == Array._proto_)console.log(arr.constructor == Array)console.log(arr instanceof(Array)) // 也是在运行链上进行判断 for in(数组也是一个特殊的对象)console.log(typeof arr) // 不用用于判断复杂的进行判断console

JS判断移动设备最佳方法 并实现跳转至手机版网页

方法一:纯JS判断 使用这方法既简单,又实用,不需要引入jQuery库,把以下代码加入到<head>里即可. <script type="text/javascript"> if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { window.location = "mobile.html"; //可以

如何高效的用判断用js判断ie6

用js判断ie6的方法有很多,如: 1. var isIE=!!window.ActiveXObject; var isIE6=isIE&&!window.XMLHttpRequest; var isIE8=isIE&&!!document.documentMode; var isIE7=isIE&&!isIE6&&!isIE8; if (isIE){ if (isIE6){ alert("ie6"); }else if

js 判断上传文件的大小

原先加了一个qq群,群里有人问道有没有办法在浏览器端获得上传文件的大小并做出限制,我自己并不知道方法,我觉得是不可以的,我在群里提出自己的见解的同时也向别人提出如果就解决办法也想一起知道,直到一大神出现解决了这个问题,才明白解决办法,忽然觉得这群里还是能学到新东西的!废话不多说了. 这是js判断文件大小的方法. function CheckImage(FileUpload) { var isIE = /msie/i.test(navigator.userAgent) && !window.