你的 JavaScript 代码吝啬吗

用最少的代码做最合适的事情
服务器君一共花费了228.822 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

前端开发,要学会吝啬:

  1. 吝啬你的代码,用最少的代码做最合适的事情;
  2. 比如你的代码中用到了很多document.getElementById(),你是否考虑写一个简单的ID选择器。

    function $(Id)
    {
        return document.getElementById(Id);
    }
    
  3. 吝啬你的补丁,不要为了实现功能在现有框架上打补丁,而是框架扩展上写实现,如果框架不能扩展,是否考虑部分重构?
  4. 比如你已经拥有一套完整的表单正则验证框架,某天你发现某个表单在严重框架里找不到对应的正则,你可能的做法是追加一个if就能简单的实现,可为何不在验证框架里面扩展一个正则,保持代码的干净呢?

  5. 吝啬代码执行的步骤
  6. 比如我们在写ajax代码时,我们经常写如下的代码:

    var xmlObject;
    function createXMLHTTPRequest()
    {
    	if(window.ActiveXObject)
    	{   
    		xmlObject = new ActiveObject("Microsoft.XMLHTTP"); 
    	}
    	else
    	{   
    		xmlObject = new XMLHTTPRequest(); 
        }
    }
    

    但我们每生成一次对象就要进行一次判断,为何不在第一次生成对象后记忆下来,下次直接new呢?改进后如下:

    var _ajax = function(){
        _self = this;
    }
    _ajax.prototype = {
        /**
         * 构建http请求对象
         */
        _create: function(){
            var factories = [
    			function(){return new XMLHttpRequest();},	//非IE系列
    			function(){return new ActiveXObject("Microsoft.XMLHTTP");},		//IE
    			function(){return new ActiveXObject("Msxml2.XMLHTTP");}			//IE某些版本
    			];
            	for (var i = 0; i < factories.length; i++) 
                {
                	try 
                    {
                    if (factories[i]()) 
                    {
                        return factories[i];
                    }
                } 
                catch (e) {
                    continue;
                }
            }
            return factory[2];
        }(),
    }
    

这段代码看起来视乎比上面执行步骤多很多,但当第一次调用_ajax._create()后,_ajax._create已经被改变成一个兼容当前浏览器的匿名函数,以后的调用都不再会做判断。

本文地址:http://www.nowamagic.net/librarys/veda/detail/654,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/654

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《人月神话》 弗雷德里克·布鲁克斯 (作者), 汪颖 (译者)

《人月神话》原文:The Mythical Man-Month: The Essays on Software Engineering, 2nd ed.在软件领域,很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。Brooks博士为人们管理复杂项目提供了最具洞察力的见解。既有很多发人深省的观点,又有大量软件工程的实践。本书内容来自Brooks博士在IBM公司System/360家族和OS/360中的项目管理经验。该书英文原版一经面世,即引起业内人士的强烈反响,后又译为德、法、日、俄中等多种语言,全球销量数百万册。确立了其在行业内的经典地位。

更多计算机宝库...