[原]jquery第一行代码有意思的两点
且看jquery的第一行和最后一行代码
(function(window, undefined) {})(window);
这种匿名结构我们屡见不鲜,今天要说的不是这个,而是第二个参数,jquery并没有给他传值,为什么?我们知道,没有传值的形参会被默认设置为window.undefined,那为什么jquery开发者没有使用window.undefined本身,而是使用一个形参替代呢?
想了一下,至少有两点值得这样做(欢迎补充):
- undefined被设置为了局部变量,局部变量意味着直接在当前作用域中即可得到使用,不用再查找上级作用域链,减少搜索次数提高效率。
- 且看压缩后的代码,(function(a,b){})(window),undefined被很巧妙的替换成的b,而在后续的代码中,很多判断都用到了undefined,而此时用b就行了,代码量减少很可观。局部变量在压缩的时候会被简短字符替换,这样可以有效的减少压缩后的文件大小,所以很多局部变量被拉出来设置,不只是为了暂存结果,也有利于压缩。
jquery代码有很多精巧有意思的地方,值得学习,都是使用语言本事,思想多重要。
分类:
jQuery
标签:
jquery 第一行代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架