1.闭包:
①参考:https://www.cnblogs.com/onepixel/p/5062456.html
函数A的内部函数B被函数A外的一个变量 c 引用。
把这句话再加工一下就变成了闭包的定义:
当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。
因此,当你执行上述5步操作时,就已经定义了一个闭包!
这就是闭包。
当我们需要在模块中定义一些变量,并希望这些变量一直保存在内存中但又不会 “污染” 全局的变量时,就可以用闭包来定义这个模块。
②闭包的写法:(function ($) { ......}(jQuery));
③(function(){})(); 的话这个可以理解为一个闭包,是一个匿名方法的调用,以保证方法内的变量不与外界冲突。
④在JavaScript中,prototype对象是实现面向对象的一个重要机制。
每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。
prototype表示该函数的原型,也表示一个类的成员的集合。
⑤.jQuery.fn === jQuery.prototype,$.fn.method()=function(){}的调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它就具有了这些方法。
⑥在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。
A、该对象被类所引用,只有函数对象才可引用;
B、在new实例化后,其成员被实例化,实例对象方可调用。
同时,函数是一个对象,函数对象若直接声明成员,不用被实例化即可调用。
2.弹框出现后面背景点击不到的方法:
画一个幕布,铺满整个屏幕,让index较高即可,刚开始隐藏。
3.setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
setInterval(function(){ alert("Hello"); }, 3000);
4.$.extend()方法:将两个或更多对象的内容合并到第一个对象。
在默认情况下,通过$.extend()合并操作不是递归的(浅拷贝);如果第一个对象的属性本身是一个对象或数组,
那么它将完全用第二个对象相同的key重写一个属性。这些值不会被合并。然而,如果将 true 作为该函数的第
一个参数,那么会在对象上进行递归的合并(深拷贝)。
5.data() 方法向被选元素附加数据,或者从被选元素获取数据。
$("div").data("greeting", "Hello World");
alert($("div").data("greeting"));
即实现给greeting赋值以及拿到greeting的值。
6.preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。
7.已知二维的长度,用js定义二维数组的方法:
var gBox = new Array(3); gBox[1]=gBox[2]=new Array(25);
8.调整span文字的间距用letter-spacing: -0.46px;
9.webstorm批量替换的操作:ctrl+shift+r
整理代码的快捷键 ctrl+shift+l