代码分析jQuery四种静态方法使用


Posted in Javascript onJuly 23, 2015

jQery每一个方法都有对应代码解析,非常详细,具有介绍请看下文:

isFunction方法

用于测试是否为函数的对象

示例:

function stub() {
  }
var objs = [
      function () {},
      { x:15, y:20 },
      null,
      stub,
      "function"
     ];
    jQuery.each(objs, function (i) {
    var isFunc = jQuery.isFunction(objs[i]);
    $("span:eq( " + i + ")").text(isFunc);
 })

运行结果:

[ true,false,false,true,false ]

源码分析:

 

// See test/unit/core.js for details concerning isFunction.
// Since version 1.3, DOM methods and functions like alert
// aren't supported. They return false on IE (#2968).
isFunction: function( obj ) {
   return jQuery.type(obj) === "function";
},

 首先就告诉你自从1.3版本就有bug ,一些dom方法和函数例如alert在ie里面会返回false,看了下这个bug,因为toString方法和valueOf方法都会被重写所以有人就提出了用instanceof方法检测但是在ie6还是有问题。目前为止这个bug还没有关闭具体大家可以从参考官网bug页因为我分析的是1.7.1所以就先按照这个版本来,这个方法就是简单的调用type方法判断其返回结果是否为字符串function
 
isArray方法

用于测试是否为数组的对象

示例:

 

$("b").append( " + $.isArray([]) );//<b>true</b>

isArray: Array.isArray || function( obj ) {
    return jQuery.type(obj) === "array";
 },

跟isFunctoin一样直接使用type方法的返回结果

isNumeric方法

确定它的参数是否是一个数字。

$.isNumeric() 方法检查它的参数是否代表一个数值。如果是这样,它返回 true。否则,它返回false。该参数可以是任何类型的

示例:

$.isNumeric("-10"); // true
$.isNumeric(16);   // true
$.isNumeric(0xFF);  // true
$.isNumeric("0xFF"); // true
$.isNumeric("8e5"); // true (exponential notation string)
$.isNumeric(3.1415); // true
$.isNumeric(+10);  // true
$.isNumeric(0144);  // true (octal integer literal)
$.isNumeric("");   // false
$.isNumeric({});   // false (empty object)
$.isNumeric(NaN);  // false
$.isNumeric(null);  // false
$.isNumeric(true);  // false
$.isNumeric(Infinity); // false
$.isNumeric(undefined); // false

源码分析:

isNumeric: function( obj ) {

        return !isNaN( parseFloat(obj) ) && isFinite( obj );

},

这个方法不是判断Number类型而是看起来像数字的类型只要传进去的参数包含数字那么就会返回true,首先使用parseFloat方法把参数转为数组,此方法会保留参数中的数字部分过滤掉其他部分,如果结果不是NaN也没有超过最大值就是true否则返回false

isWindow方法

用于测试是否为window对象

isNumeric: function( obj ) {
    return !isNaN( parseFloat(obj) ) && isFinite( obj );
},

一种粗略的方法判断对象是window,如果满足传进来的是对象而且具有setInterval方法则认为该对象为window对象,现在这个方法已经改为判断是否是窗口对象了具体以后在分析。希望大家能够喜欢以上内容所述。

Javascript 相关文章推荐
javascript 表单规则集合对象
Jul 21 Javascript
使用JavaScript实现Java的List功能(实例讲解)
Nov 07 Javascript
JS不间断向上滚动效果代码
Dec 25 Javascript
AngularJS基础知识笔记之过滤器
May 10 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
Mar 13 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
详解Angular系列之变化检测(Change Detection)
Feb 26 Javascript
微信小程序自定义toast的实现代码
Nov 16 Javascript
在node环境下parse Smarty模板的使用示例代码
Nov 15 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
Jul 22 #Javascript
HTML5实现留言和回复页面样式
Jul 22 #Javascript
javascript控制层显示或隐藏的方法
Jul 22 #Javascript
javascript实现简单查找与替换的方法
Jul 22 #Javascript
javascript数组随机排序实例分析
Jul 22 #Javascript
JavaScript对数组进行随机重排的方法
Jul 22 #Javascript
JavaScript检测上传文件大小的方法
Jul 22 #Javascript
You might like
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
php之可变变量的实例详解
2017/09/12 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
Python中给List添加元素的4种方法分享
2014/11/28 Python
Python 文件管理实例详解
2015/11/10 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
深入理解Python3 内置函数大全
2017/11/23 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
应届大学生的推荐信
2013/11/20 职场文书
电子商务专业自我鉴定
2013/12/18 职场文书
啦啦队口号大全
2014/06/16 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
2015年党总支工作总结
2015/05/25 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript
centos8安装MongoDB的详细过程
2021/10/24 MongoDB