1 (function($) {})(jQuery)什么意思?
(funtion(){})();立即执行函数;相当于先申明一个函数,声明完后直接调用;如果参数如:
(funtion(str){})("output"));相当于:funtion OutPutFun(str){;};OutPutFun("output");
2 jQuery(function(){})与(function(){})(jQuery)的区别?
jQuery(function(){ });用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。
(function(){ })(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。
3 什么是Javascript闭包?
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
4 javascript的caller,callee,call,apply
http://www.cnblogs.com/sunwangji/archive/2006/08/21/482341.html
http://blog.csdn.net/apollo_ts/archive/2009/04/30/4139096.aspx
caller 属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller 包含的就是 null 。如果在字符串上下文中使用 caller 属性,那么结果和 functionName.toString 一样,也就是说,显示的是函数的反编译文本。
callee 属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名函数的递归或者保证函数的封装性.
apply and call
它们的作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数方式有所区别:
apply(thisArg,argArray);
call(thisArg[,arg1,arg2…] ]);
即所有函数内部的this指针都会被赋值为thisArg,这可实现将函数作为另外一个对象的方法运行的目的
5 JavaScript shift() 方法
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
提示:要删除并返回数组的最后一个元素,请使用 pop() 方法。