jquery 7/31/2017
此次阅读的jQuery的版本是 v3.2.1,下面的分享全部以此版本为准
收获一、立即执行函数的使用
我们把jQuery其他的部分全部去掉,我们可以发现其中的最基础的一个架构。
1 (function(global, factory) { 2 factory(global); 3 })(window !== "undefined" ? window : this, function(window, noGlobal) { 4 5 });
由于在多人协同合作或者是插件、框架中,你写的代码是在全局作用域中的,如果别人在写代码的时候一不小心把你的东西给覆盖掉了,那么问题就大了。所以在开发中,我们使用匿名包裹来实现命名空间,这是一个属于自己的私人作用域,这样就可以保护我们自己的变量了。
收获二、==与===的使用
在jquery中,我们可以看到大量的使用的是===和!==,这是一个很好的习惯。我们知道当使用==的时候,会进行隐式的强制类型转换。这对于系统来说会带来不确定性,所以我们在自己写代码的时候,我们要尽量的全部使用===。
但是,是不是==就没用呢,肯定不是的,可以看出在jquery中有这样的代码是使用的两等号。
1 if (values != null) { 2 ...... 3 } 4 // 这段代码实际上的作用与下面一样 5 if (values !== null && values !== undefined) { 6 ...... 7 }
收获三、对于代码前;的使用
可以看到有的代码会使用;在文件最开头的位置。
1 ;(function(){ 2 ...... 3 })()
其实这是为了能在代码合并压缩的时候不会和上一段代码杂合在一起,造成一些不可查的错误,所以在代码开始前使用了;来防止这个错误。