• JavaScript和jQuery的类型判断


    此博文为原创,转载请注明出处!

    对于类型的判断,JavaScript用typeof来进行。

    栗子:

    console.log(typeof null);            //object
    console.log(typeof []);              //object
    console.log(typeof {});              //object
    console.log(typeof new Date());      //object
    console.log(typeof new Object);      //object
    console.log(typeof function(){});    //function
    console.log(typeof alert);           //function
    console.log(typeof 1);               //number
    console.log(typeof "abc");           //string
    console.log(typeof true);            //boolean

    可以看到,typeof并不能够准确的判断出每一种数据类型,比如null和数组等都是object类型。因此,JavaScript判断数据类型不推荐使用typeof。

    那么要如何具体判断呢??看一下语法<( ̄3 ̄)> !

    {}.toString.call(obj);

    栗子:

    console.log({}.toString.call(null));            //[object Null]
    console.log({}.toString.call([]));              //[object Array]
    console.log({}.toString.call({}));              //[object Object]
    console.log({}.toString.call(new Date()));      //[object Date]
    console.log({}.toString.call(function(){}));    //[object Function]
    console.log({}.toString.call(new Object));      //[object Object]
    console.log({}.toString.call(alert));           //[object Function]
    console.log({}.toString.call(1));               //[object Number]
    console.log({}.toString.call('abc'));           //[object String]
    console.log({}.toString.call(true));            //[object Boolean]

    哈哈,是不是一目了然呀!!

    那如果你用的是jQuery,就不用这么麻烦喽,可以直接用工具方法$.type(),进行判断

    栗子:

    console.log($.type(null));                  //null
    console.log($.type([]));                    //array
    console.log($.type({}));                    //object
    console.log($.type(1));                     //number
    ......不全写完了,结果和
    {}.toString.call(obj);是一样的
    实际上{}.toString.call(obj);就是jQuery中$.type()这个工具方法的实现最重要的一段代码(⊙o⊙)哦,神奇吧!赶快去jQuery源码中找找看吧~~

    如果哪里写的有问题,欢迎各路大神指正!
  • 相关阅读:
    [zt]在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi
    线程间操作无效: 从不是创建控件“...”的线程访问它。
    Unity IoC + WCF + wsHTTPBinding + Certificate Authorization
    [转]PowerDesigner使用教程 —— 概念数据模型
    C# Post数据和接收简单示例【摘】
    163相册验证码图片的识别手记之一 去除干扰
    实现WCF和Unity 的集成
    Html.ActionLink 几种重载方式说明及例子
    如何从程序员到项目经理【转帖51cto】
    OSG闪存
  • 原文地址:https://www.cnblogs.com/yuqingfamily/p/5796229.html
Copyright © 2020-2023  润新知