jQuery 知识点(六) —— jQuery 工具函数和全局属性

一、类型判断函数
var obj = { name : "car"};
$.type(obj);//jQuery 对象类型判断函数
console.log($.type(obj));// 返回 object
console.log($.type(null));// 返回 null
console.log($.type([]));// 返回 array
$.isEmptyObject("");//检查一个对象是否包含属性,不包含返回 true
console.log($.isEmptyObject(""));// 返回 true
console.log($.isEmptyObject({}));//返回 true
console.log($.isEmptyObject(obj));//返回 false
$.isPlainObject(obj);//检查一个对象是否包含属性,只有当该对象为 Object 类型并且包含属性时返回 true
$.isFunction(obj);// false 检查对象是否为一个函数
二、数组处理函数
var objArray = $.markArray(obj);//将对象转换为数组
console.log($.isArray(objArray));// true 判断一个对象类型是否为数组
console.log(objArray);//
var nums = [1,2,3,1];
var names = ["Peter","Jim"];
console.log($.merge(nums,names));//[1,2,3,1,"Peter","Jim"] 数组合并
console.log($.unique(nums));//清除数组中重复的元素
console.log($.inArray(1,nums));//true 判断元素是否在数组中
$.each(nums,function(index,value){//数组遍历
    value = value * 2;
    console.log("索引 "+index+" 的新值为:" + value);
});
console.log(nums);
var newArray = $.map(nums,function(value,index)){  
    return value*2+7;
}//数组处理,注意处理函数第一个参数为当前元素的值,第二个参数才是索引
console.log(newArray);
$.grep(newArray,function(n,index){
    return n > 2;
});//数组筛选 $.grep(array,callback);
console.log($.inArray(18,nums));// 确定第一个参数在数组中的位置,没有找到返回 -1
console.log($("p"));// 把jQuery集合中所有DOM元素恢复成一个数组
$.when($.ajax("test.php")).then(function(){
    console.log("执行完 when 执行 then");
});// 提供一种方法来执行一个或多个对象的回调函数,延迟对象通常表示异步事件
三、网络异步请求相关函数
var ajaxApp = {
    log:function(fn){ console.log("global Ajax " + fn.name);};
    complete:this.log("complete"),
    error:this.log("error"),
    send:this.log("send"),
    start:this.log("start"),
    stop:this.log("stop"),
    success:this.log("success")
}
$.ajaxSetup(options) // 设置全局的 AJAX 属性
$.ajaxComplete(ajaxApp.complete); // 设置全局 AJAX 请求完成回调函数,callback(event,request,settins)
$.ajaxError(ajaxApp.error);// 设置全局的 AJAX 错误处理函数,callback(event,XHR,settings,thrownError)
$.ajaxSend(ajaxApp.send);// 设置全局的 AJAX 请求前执行的函数
$.ajaxStart(ajaxApp.start);// 设置全局的 AJAX 请求开始执行的函数
$.ajaxStop(ajaxApp.stop);// 设置全局 AJAX 请求结束时执行的函数
$.ajaxSuccess(ajaxApp.success); // 设置全局 AJAX 请求成功时执行的函数
$.ajax({
    type:"GET", // 请求的 HTTP 方法
    dataType:"json", // 数据类型
    error:universalGoofupFunction //全局的异常处理函数 
});
/*
* $.post(url,parameters,callback,type) : 以 POST 方式发送一个AJAX请求
* @param url 请求资源的 URL
* @param parameters 请求的数据参数
* @param callback 请求成功的回调函数
* @param type 希望服务器返回的数据类型
* /

/*
* $.get(url,parameters,callback,type) : 以 GET 方式发送一个 AJAX 请求
* @param url 请求资源的 URL
* @param parameters 请求的数据参数
* @param callback 请求成功的回调函数
* @param type 希望服务器返回的数据类型
* return XHR
* /
/*
* $(selector).load(url,[data],[success(response,status,XHR)])
* @param url 请求的URL
* @param [data] 提交给服务器的数据
* @param [success(response,status,XHR)] 请求成功时执行的回调函数,参数为响应的数据,HTTP 状态码和 XMLHttpRequest 对象
* /
/*
* $.getJSON(url,parameters,callback) :以JSON数据格式向服务器请求数据
* @param url 请求的URL
* @param data 发送的键值对参数
* @param callback 执行回调函数
* return  XHR
*/
/*
* $.getScript(url,callback) : 从服务器请求js脚步
* @param url 请求的URL
* @param callback 执行的回调函数
* return XHR
*/
四、数据处理相关函数
console.log($.parseJSON("{}"));//将字符串转换为 json 
consoel.log($.parseXML("<xml></xml>"));//将字符串转换 xml DOM 对象
console.log($.isXMLDoc());//检查一个 DOM 节点是否为一个 XML 文档
console.log($("form").serialize());//序列化表单内容为字符串
console.log($("form").serializeArray());//序列化表单为数值
五、DOM 相关工具函数
//$.contains(container,child)
$.contains($("head")[0],$("title")[0]); //检查一个 DOM 节点是否是另一个节点的子节点,第一个参数为容器节点,第二个参数为子节点
六、其他工具函数和属性
$.fx.off = true;// 关闭页面上所有的动画
$.fx.interval = 100;// 设置动画的显示帧速
console.log($.fx.off);//
console.log($.fx.interval);//
console.log($.now());//获取当前时间
console.log($.isWindow(window));//用于区分 iframe 和 window
console.log($.support);//用于检查浏览器支持情况
var person = {name:"Peter"};
console.log($.extend(person,{"name":"Tom"},{"age":18}));// 用一个或多个其他对象来扩展一个对象,返回被扩展的对象 
console.log($.noop);//$.noop 指向一个空函数
console.log($.trim(" 我是中国人    "));//删除字符串起始和结尾的空格
console.log($.param({"name":"Tom","age":19}));// 将对象序列化
jQuery.error("message");//直接抛出一个包含该字符串的异常
$.globalEval("var x=0;");//在全局上下文中执行js代码
console.log($.fn.jquery);// 代表 jQuery 版本号的字符串
七、$.Callbacks() 委托链
var foo = function(val){
    console.log("foo:"+val);
}
var bar = function(val){
    console.log("bar:"+val);
}
var callbacks = $.Callbacks();
callbacks.add(foo);//加入回调函数或委托
callbacks.fire("Hello");//触发委托链,传入参数 Hello
// 输出结果
// foo:Hello
callbacks.add(bar);
callbacks.fire("world!");//触发委托链,传入参数 world! 
// 输出结果
// foo:world
// bar:world
callbacks.fireWith(window, ['function','action']);//在给定上下文中执行数组
//foo:function
//bar:function
callbacks.disable();//禁止触发委托链
console.log(callbacks.disabled());// true  是否已经被禁止
callbacks.fire("world2");//触发委托链,传入参数 world! 
callbacks.empty();//清空委托链
console.log(callbacks.fired());// ture 确定委托链至少被调用过一次
console.log(callbacks.has(foo));// false empty方法刚被调用  确定委托链中有 foo 函数
callbacks.lock();//锁定委托链,所有函数都不能触发
console.log(callbacks.lock());
callbacks.disable(false);
console.log("disabled ?:"+callbacks.disabled());// true  是否已经被禁止
callbacks.add(foo);
callbacks.add(bar);
callbacks.add(foo);
console.log(callbacks);

callbacks.remove(foo,bar);//删除一个或多个委托
var flags = "once memory unique stopOnFlse";//一个用空格标记分隔的标志可选列表
// once: 确保这个回调列表只执行一次(像一个递延 Deferred). 
// memory: 保持以前的值和将添加到这个列表的后面的最新的值立即执行调用任何回调 (像一个递延 Deferred). 
// unique: 确保一次只能添加一个回调(所以有没有在列表中的重复). 
// stopOnFalse: 当一个回调返回false 时中断调用 
// 默认情况下,回调列表将像事件的回调列表中可以多次触发。

callbacks = $.Callbacks(flags);//带复杂参数的委托链
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值