工具函数是指在jQuery对象(即变量”$”)上定义的函数. 这些函数都是工具类函数.
废话不多说,以简单的例子切入正题。
在JavaScript中 typeof 运算符的作用是返回一个用来表示表达式的数据类型的字符串,可结果往往不够准确
var a = [1,3,5];
console.log(typeof a); //object
jQuery里便有更优秀的工具来判断出具体的引用类型;
$.type(obj)
//参数obj:用于测试类型的对象
console.log($.type(true));
console.log($.type(3));
console.log($.type("test"));
console.log($.type(function(){}));
console.log($.type([]));
console.log($.type(new Date()));
console.log($.type(/test/));
打印结果:
再介绍几个简单的工具函数。
$.trim(str)
jQuery.trim(str):去掉字符串起始和结尾的空格。
参数str:需要处理的字符串
var str =" abc ";
console.log('('+str+')');
console.log('('+$.trim(str)+')');
$.inArray(val,arr)
jQuery.inArray(value,array)
作用:确定第一个参数在数组中的位置,从0开始计数(如果没有找到则返回 -1 )
var arr = [6,"jay",9,"Yxt"];
console.log($.inArray("jay",arr)); //1
console.log($.inArray(9,arr)); //2
console.log($.inArray(6,arr)); //0
console.log($.inArray('Yxt',arr)); //3
console.log($.inArray(8,arr)); //-1
console.log($.inArray("solo",arr)); //-1
$.proxy():
作用:修改内部this指针的指向。
第一个参数表示要修改的函数,第二个参数表示函数指针要指向的新对象,修改仅限于在$.proxy()方法内生效。后边在调用函数时,函数内部this指针的指向还是原来的指向;
function show(){
console.log(this);
}
show();//window
$.proxy(show,document)();
show();//document
//把show()绑定在document的点击事件上
$(document).click(show);
$(document).click($.proxy(show,window));
//如果需要参数,就把参数依次列在修改指针指定的对象之后
function showCan(a,b){
console.log(a+b);
console.log(this);
}
$(document).click($.proxy(showCan,window,3,6));
$.parseJSON(json)
作用:把严格模式下的json字符串转化为对象类型
传入一个畸形的JSON字符串会抛出一个异常。比如下面的都是畸形的JSON字符串:
{test: 1} ( test 没有包围双引号)
{'test': 1} (使用了单引号而不是双引号)
另外,如果你什么都不传入,或者一个空字符串、null或undefined,parseJSON都会返回 null 。
var obj= $.parseJSON ('{"name":"Jay","age":"36"}');
console.log(obj.name==="Jay"); //true
jQuery.noConflict([ex])
noConflict() 方法用来让渡变量 $ 的 jQuery 控制权。
该方法释放 jQuery 对 $ 变量的控制。
该方法也可用于为 jQuery 变量规定新的自定义名称。
提示:在其他 JavaScript 库为其函数使用 $ 时,该方法很有用。
var yxt=$.noConflict();
yxt(document).ready(function(){
yxt("button").click(function(){
yxt("p").hide();
});
});