精华内容
下载资源
问答
  • 主要介绍了五种JavaScript判断是否为整数类型方式,需要的朋友可以参考下
  • JS判断数据类型的几种方式

    千次阅读 2019-05-09 12:21:41
    JS中常见的几种数据类型 基本类型:string、boolean、number 特殊类型:undefined和null 3、引用类型:Array、Date、RegExp… typeof typeof检测基本数据类型时没有问题,但是当其对引用类型进行检测时,会返回...

    JS中常见的几种数据类型

    1. 基本类型:string、boolean、number
    2. 特殊类型:undefined和null
    3. 3、引用类型:Array、Date、RegExp…

    typeof

    typeof检测基本数据类型时没有问题,但是当其对引用类型进行检测时,会返回object,这样就无法进行精准的判断,这样也不足为奇,因为所有的对象其原型链最终都指向了object
    比如 typeof null --> object, 但是typeof undefined --> undefined,typeof new Function —> function,对于检测其他引用数据类型时都返回object

    instanceof

    用来判断A是否是B的实例,是的话就返回true,不是就返回false。当 A 的 _proto_ 指向 B 的 prototype 时,就认为A就是B的实例。
    这种方式也是有问题的,比如他会认为 []也是Object的实例。
    分析一下[]、Array、Object 三者之间的关系: 从instanceof 能够判断出 []._proto_ 指向 Array.prototype, 而 Array.prototype.proto 又指向了Object.prototype,Object.prototype._proto_ 指向了null,标志着原型链的结束。
    于是得出一个结论,instanceof只能用来检测两个对象是否在一条原型链上,并不能检测出对象的具体类型。

    constructor

    当一个函数F被创建时,JS引擎会为其添加prototype原型,然后在原型上添加一个constructor属性,并让其指向F的引用。也就是说F.prototype.constructor === F // ---> true
    当执行 var f = new F() 这时候F被当做构造函数使用,这时候F原型上的constructor就会被转移到了实例对象f上,f.constructor === F // --> true
    在这里插入图片描述
    注意;null和undefined是无效的对象,是不存在constructor这个属性的
    但是constructor也是存在问题的,比如当我们重写了F的prototype之后,原有的constructor会丢失,此时F的实例对象f的constructor也不会再指向F,这时候的constructor会默认指向Object。
    F.prototype = { a: 'test' }; var f = new F(); f.constructor == F;// false,但是f.constructor == Object; // true为什么呢???
    因为F.prototype被重新赋值了 {},而{}是new Object()的一个实例对象,因此,new Object()会把其原型上的constructor传递给 {}
    因此,为了规范,在重写对象原型时一般都需要重新给constructor赋值,以保证实例对象的类型不被改写。

    Object.prototype.toString

    toString 方法默认返回其调用者的具体类型,更严格的讲是toString运行时,this指向的对象类型。
    但是需要注意的是,必须要通过Object.prototype.toString这种方法来查找,不能直接使用toString,从原型链的角度讲,所有对象的原型链最终都指向了Object,按照JS变量查找规则,其他对象也是可以直接访问到Object的toString方法的,但是事实上,大部分对象都已经实现了自身的toString方法,这样就可能导致Object的toString被终止查找,所以我们使用call方法来强制执行Object的toString方法。
    Object.prototype.toString.call(’’) ; // [object String]
    Object.prototype.toString.call(1) ; // [object Number]
    Object.prototype.toString.call(true) ; // [object Boolean]
    Object.prototype.toString.call(undefined) ; // [object Undefined]
    Object.prototype.toString.call(null) ; // [object Null]
    Object.prototype.toString.call(new Function()) ; // [object Function]
    Object.prototype.toString.call(new Date()) ; // [object Date]
    Object.prototype.toString.call([]) ; // [object Array]
    Object.prototype.toString.call(new RegExp()) ; // [object RegExp]
    Object.prototype.toString.call(new Error()) ; // [object Error]
    Object.prototype.toString.call(document) ; // [object HTMLDocument]
    Object.prototype.toString.call(window) ; //[object Window] window是全局对象global的引用

    展开全文
  • 主要介绍Javascript如何判断数据类型和数组类型,通俗易懂,需要的朋友可以参考下。
  • JS/jQuery判断数据类型的几种方式

    千次阅读 2019-07-02 10:08:06
    JavaScript提供判断数据类型的一些方法: 方法一:typeof; 方法二:tostring.call(); 方法三:Instanceof 和 constructor; 方法四:hasOwnProperty; 代码例子如下: <script> var str = 'aaaa'; ...

    JavaScript提供判断数据类型的一些方法:
    方法一:typeof;

    方法二:tostring.call();

    方法三:Instanceof 和 constructor;

    方法四:hasOwnProperty;

    代码例子如下:

    			    <script>
    		        var str = 'aaaa';
    		    
    		        var num = 123;
    		    
    		        var fun = function () {};
    		    
    		        var arr = [];
    		    
    		        function Person() {};
    		    
    		        function Food() {};
    		    
    		        var xiaoming = new Person();
    		        var bananer = new Food();
    		        var time = new Date();
    		    
    		        // 方法一 typeof
    		        console.log("方法一 typeof")
    		        console.log(typeof fun);  // function
    		        console.log(typeof arr);  // object
    		        console.log(typeof xiaoming);  // object
    		        /*缺点 : 实例对象和数组返回的都是object,没有办法区分。*/
    		    
    		        // 方法二 tostring.call();
    		        console.log("方法二 tostring.call();")
    		        console.log(toString.call(arr)); // [object Array]
    		        console.log(toString.call(xiaoming)); // [[object Object]]
    		        console.log(toString.call(time)); // [object Date]
    		        console.log(toString.call(str)); // [object String]
    		      // 相比typeof来说,对象的类型更加的清晰
    		    
    		        // 方法三 Instanceof 和 constructor
    		        /*用于检测某个实例对象是由哪个构造函数创建出来的*/
    		        console.log('方法三 Instanceof 和 constructor')
    		        console.log(bananer.constructor); //function Food() {}
    		        console.log(xiaoming.constructor);  // function Person() {}
    		        console.log(bananer instanceof Person); // false
    		        console.log(bananer instanceof Food);   // true
    		    
    		       // 方法四 hasOwnProperty  判断某个属性是不是对象自身的属性
    		       var iphone = {
    		           name:'iphone',
    		           age:100,
    		           address:{home:'江苏',current:'北京昌平'}
    		       }
    		    console.log(iphone.hasOwnProperty('name'))  // true
    		    console.log(iphone.hasOwnProperty('age'))   // true
    		    console.log(iphone.hasOwnProperty('address'))  // true
    		    console.log(iphone.hasOwnProperty('home'))  //false
    		    </script>
    

    Query提供判断数据类型的一些方法:

    以下方法对参数进行判断,返回一个布尔值。

    jQuery.isArray():是否为数组。

    jQuery.isEmptyObject():是否为空对象(不含可枚举的属性)。

    jQuery.isFunction():是否为函数。

    jQuery.isNumeric():是否为数字。

    jQuery.isPlainObject():是否为使用“{}”或“new Object”生成的对象,而不是浏览器原生提供的对象。

    jQuery.isWindow():是否为window对象。

    jQuery.isXMLDoc():判断一个DOM节点是否处于XML文档之中。

    展开全文
  • 详解js类型判断

    2020-10-18 12:28:04
    本篇文章给大家详细分析了js类型判断的相关知识点内容,有兴趣的朋友跟着学习下吧。
  • 主要介绍了JavaScript判断浏览器类型的方法,可实现针对IE、火狐、谷歌等浏览器的判断,具有一定参考借鉴价值,需要的朋友可以参考下
  • js 类型判断

    千次阅读 2019-03-08 17:09:38
    类型判断 typeof(type); 原生 'undefined' *'boolean' 'string' 'number' 'object' 'function' 自定义类型判断函数 function typeOf(obj) { var typeList = { '[object Boolean]' : 'boolean', ...

    类型判断

    typeof(type);
    原生

    'undefined'
    *'boolean'
     'string'
     'number'
    'object'
     'function'
    

    /*
    * 类型检测:
    *
    * instanceof 操作符可以用来判断某个构造函数的 prototype 属性是否存在另外一个要检测对象的原型链上。
    * 也就是判断instanceof前面的对象是否是后面的类或对象的实例。
    *
    *
    *
    * */

       /*
            * Object.prototype.toString()
            * 在Object基本类定义的这个toString()方法,是用来检测数据类型的;
            * */
    
            console.log(Object.prototype.toString.call(1));//[object Number]
            console.log(Object.prototype.toString.call(''));//[object String]
            console.log(Object.prototype.toString.call(true));//[object Boolean]
            console.log(Object.prototype.toString.call(null));// [object Null]
            console.log(Object.prototype.toString.call(undefined));//[object Undefined]
            console.log(Object.prototype.toString.call([]));// [object Array]
            console.log(Object.prototype.toString.call({}));// [object Object]
            console.log(Object.prototype.toString.call(/^$/));//[object RegExp]
            console.log(Object.prototype.toString.call((function () {})));//[object Function]
    

    自定义类型判断函数

    function typeOf(obj) {
            var typeList = {
                '[object Boolean]'  : 'boolean',
                '[object Number]'   : 'number',
                '[object String]'   : 'string',
                '[object Function]' : 'function',
                '[object Array]'    : 'array',
                '[object Date]'     : 'date',
                '[object RegExp]'   : 'regExp',
                '[object Undefined]': 'undefined',
                '[object Null]'     : 'null',
                '[object Object]'   : 'object'
            };
            return typeList [Object.prototype.toString.call(obj)];
        }
    
    展开全文
  • js 判断数据类型

    千次阅读 2019-12-12 11:30:44
    一、JS中数据类型 基本数据类型(Undefined、Null、Boolean、Number、String) 复杂数据类型 (Object) 二、判断数据类型 下面将对如下数据进行判断它们的类型 var bool = true var num = 1 var str = 'abc' ...

     

    一、JS中数据类型

    • 基本数据类型(Undefined、Null、Boolean、Number、String)
    • 复杂数据类型 (Object)

    二、判断数据类型

    下面将对如下数据进行判断它们的类型

    var bool = true
    var num = 1
    var str = 'abc'
    var und = undefined
    var nul = null
    var arr = [1,2,3]
    var obj = {name:'haoxl',age:18}
    var fun = function(){console.log('I am a function')}

    1.使用typeof

    console.log(typeof bool); //boolean
    console.log(typeof num);//number
    console.log(typeof str);//string
    console.log(typeof und);//undefined
    console.log(typeof nul);//object
    console.log(typeof arr);//object
    console.log(typeof obj);//object
    console.log(typeof fun);//function
    由结果可知typeof可以测试出 numberstringbooleanundefinedfunction,而对于 null及数组、对象,typeof均检测出为object,不能进一步判断它们的类型。

    2.使用instanceof

    console.log(bool instanceof Boolean);// false
    console.log(num instanceof Number);// false
    console.log(str instanceof String);// false
    console.log(und instanceof Object);// false
    console.log(arr instanceof Array);// true
    console.log(nul instanceof Object);// false
    console.log(obj instanceof Object);// true
    console.log(fun instanceof Function);// true
    
    var bool2 = new Boolean()
    console.log(bool2 instanceof Boolean);// true
    
    var num2 = new Number()
    console.log(num2 instanceof Number);// true
    
    var str2 = new String()
    console.log(str2 instanceof String);//  true
    
    function Person(){}
    var per = new Person()
    console.log(per instanceof Person);// true
    
    function Student(){}
    Student.prototype = new Person()
    var haoxl = new Student()
    console.log(haoxl instanceof Student);// true
    console.log(haoxl instanceof Person);// true
    从结果中看出instanceof不能区别undefined和null,而且对于基本类型如果不是用new声明的则也测试不出来,对于是使用new声明的类型,它还可以检测出多层继承关系。

    3.使用constructor

    undefined和null没有contructor属性
    console.log(bool.constructor === Boolean);// true
    console.log(num.constructor === Number);// true
    console.log(str.constructor === String);// true
    console.log(arr.constructor === Array);// true
    console.log(obj.constructor === Object);// true
    console.log(fun.constructor === Function);// true
    
    console.log(haoxl.constructor === Student);// false
    console.log(haoxl.constructor === Person);// true
    constructor不能判断undefined和null,并且使用它是不安全的,因为contructor的指向是可以改变的

    4.使用Object.prototype.toString.call

    console.log(Object.prototype.toString.call(bool));//[object Boolean]
    console.log(Object.prototype.toString.call(num));//[object Number]
    console.log(Object.prototype.toString.call(str));//[object String]
    console.log(Object.prototype.toString.call(und));//[object Undefined]
    console.log(Object.prototype.toString.call(nul));//[object Null]
    console.log(Object.prototype.toString.call(arr));//[object Array]
    console.log(Object.prototype.toString.call(obj));//[object Object]
    console.log(Object.prototype.toString.call(fun));//[object Function]
    
    function Person(){}
    function Student(){}
    Student.prototype = new Person()
    var haoxl = new Student()
    console.log(Object.prototype.toString.call(haoxl));//[object Object]
     
    展开全文
  • js判断浏览器类型

    2012-02-27 11:11:35
    js判断浏览器类型。 可以判断火狐,谷歌,IE等五大浏览器判断
  • 主要介绍了JavaScript判断数组类型的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 今天看到 司徒一篇blog, javascript深拷贝,其中涉及到一种判断类型的方法,特分析如下
  • 主要介绍了js判断上传文件类型判断FileUpload文件类型代码,需要的朋友可以参考下
  • typeof算是最常见的了,使用它会返回一个字符串,适合函数对象和基本类型js中的基本类型:number、string、boolean、null、undefined、object[对象])的判断。 console.log("测试number:"+typeof 1); console....
  • js判断数据类型判断是否为数组类型判断是否为字符串类型判断是否为数值类型等等,本文有几个不错的示例,大家可以学习下
  • 比如要判断一个变量是否是数组类型,PHP中有is_array()函数可以直接判断,然而js中我们需要...-- well,下面我们就来详细看一下JavaScript判断数据类型的方法总结
  • 介绍了js判断浏览器类型的方法,有需要的朋友可以参考一下
  • 讲解利用JavaScript如何判断浏览器类型!讲解利用JavaScript如何判断浏览器类型
  • 主要介绍了JavaScript判断undefined类型的正确方法,相信很多同学在遇到这问题时都会用到错误的方法,正确方法也很简单,需要的朋友可以参考下
  • js判断数据类型

    2014-01-15 13:02:58
    js判断数据类型
  • 类型判断 typeof 类型转换 JS 数据类型 通过函数进行类型转换 String Number 之间的想换转换 自动类型转换 目录导航 类型判断 typeof JS 中可以使用关键字 typeof 判断 demo typeof "...
  • 主要介绍了JavaScript 判断数据类型的4种方法,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
  • js 判断数据类型 引用类型

    千次阅读 2018-12-06 09:48:11
    * js 判断数据类型 * 基础类型 typeof string number boolean undefined null * * 引用类型 基础类型都可以使用 vue中使用这种方法判断数据类型 * 使用: Object.prototype.toString.call(要判断的数据) * * ...
  • javascript中常见的数据类型:基本类型: string number boolean 特殊类型: underfined null 引用类型: object 1 typeof typeof返回一个表示数据类型的字符...typeof可以对js基础数据类型做出准确的判断,在对于引...
  • 判断函数类型时,我们通常使用typeof方法,一般情况下,它会得到我们所预想的效果。
  • 主要介绍了js判断undefined类型的实现方法,需要的朋友可以参考下
  • 简单的一二十代码, 就可以判断出当前所有浏览器的类型, 支持的浏览器也有很多,感谢支持

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 323,069
精华内容 129,227
关键字:

判断js类型的方式