<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript如何提升代碼性能的用法匯總

        來源:懂視網 責編:小采 時間:2020-11-27 20:15:05
        文檔

        JavaScript如何提升代碼性能的用法匯總

        JavaScript如何提升代碼性能的用法匯總:使用字符串累加計算風格 使用+運算會在內存中創建一個新的字符串并把連接的值賦給它。僅僅是將這個結果賦值給一個變量。 為了避免連接結果的中間變量,可以使用+=來直接賦值結果。 運行緩慢的代碼: a += 'x' + 'y';運行更快的代碼:
        推薦度:
        導讀JavaScript如何提升代碼性能的用法匯總:使用字符串累加計算風格 使用+運算會在內存中創建一個新的字符串并把連接的值賦給它。僅僅是將這個結果賦值給一個變量。 為了避免連接結果的中間變量,可以使用+=來直接賦值結果。 運行緩慢的代碼: a += 'x' + 'y';運行更快的代碼:

        使用字符串累加計算風格

        使用+運算會在內存中創建一個新的字符串并把連接的值賦給它。僅僅是將這個結果賦值給一個變量。
        為了避免連接結果的中間變量,可以使用+=來直接賦值結果。

        運行緩慢的代碼:

        a += 'x' + 'y';

        運行更快的代碼:

        a += 'x'; a += 'y';

        原操作會比函數調用快
        可以考慮在性能要求關鍵的循環和函數中使用可以替代的原操作。
        運行緩慢的代碼:

        var min = Math.min(a, b); 
        arr.push(val);

        運行更快的代碼:

        var min = a < b ? a : b; 
        arr[arr.length] = val;

        設置setTimeout() 和 setInterval() 時傳遞函數名而不是字符串

        如果你傳遞一個字符串到setTimeout() 或者 setInterval()中,字符串將會被eval計算而導致緩慢。
        使用一個匿名函數包裝來代替,這樣在編譯的時候就可以被解釋和優化。

        運行緩慢的代碼:

        setInterval('doSomethingPeriodically()', 1000); 
        setTimeOut('doSomethingAfterFiveSeconds()', 5000);

        運行更快的代碼:

        setInterval(doSomethingPeriodically, 1000); 
        setTimeOut(doSomethingAfterFiveSeconds, 5000);

        避免在對象中使用不需要的DOM引用

        不要這么做:

        var car = new Object(); 
        car.color = "red"; 
        car.type = "sedan"

        更好的一種形式:

        var car = { 
        color : "red"; 
        type : "sedan" 
        }

        最清晰的目標速度,最小化作用域鏈

        低效率方法:

        var url = location.href;

        一種高效形式:

        var url = window.location.href;

        試著在腳本中少使用注釋,避免使用長變量名
        盡可能的保證注釋少或者避免使用注釋,特別是在函數,循環以及數組中。
        注釋不必要的減緩腳本執行并且增加了文件大小。比如:

        不建議的形式:

        function someFunction() 
        { 
        var person_full_name="somename"; /* stores the full name*/ 
        }

        更好的寫法:

        function someFunction() 
        { 
        var name="somename"; 
        }

        在當前作用域存儲應用的外部變量
        當一個函數被執行的運行上下問被穿件,一個活動的對象會包含所有局部變量會被推到上下文鏈的前面。
        在作用域鏈中,最慢的是清楚的識別標識符,意味著局部變量是最快的。存儲頻繁使用的外部變量讀和寫都會明顯的加快。這對于全局變量和其他深層次的標識符查找特別明顯。
        同樣,在當前作用域中的變量(var myVar)比對象像屬性的訪問速度快(this.myVar)。

        運行緩慢的代碼:

        function doSomething(text) { 
        var ps = document.getElementsByTagName('p'), 
        text = ['foo', /* ... n ... */, 'bar']; 
        for (var i = 0, l = ps.length; i < l; i++) { 
        ps[i].innerHTML = text[i]; 
        } 
        }

        運行更快的代碼:

        function doSomethingFaster(text) { 
        var doc = document, 
        ps = doc.getElementsByTagName('p'), 
        text = ['foo', /* ... n ... */, 'bar']; 
        for (var i = 0, l = ps.length; i < l; i++) { 
        ps[i].innerHTML = text[i]; 
        } 
        }

        如果你需要訪問一個元素(如 head)在一個大的循環中,使用一個本地的DOM訪問(如例子中的get)會更快。
        運行更快的代碼:

        function doSomethingElseFaster() { 
        var get = document.getElementsByTagName; 
        for (var i = 0, i < 100000; i++) { 
        get('head'); 
        } 
        }

        使用變量緩存值
        在做重復工作的地方使用局部變量緩存值。
        下面的一組例子表明了存儲值到局部變量的廣泛意義。

        例子1.計算執行前在循環體內使用變量存儲數學函數
        錯誤的方法:

        var d=35; 
        for (var i=0; i<1000; i++) { 
        y += Math.sin(d)*10; 
        }

        更好的處理:

        var d = 55; 
        var math_sind = Math.sin(d)*10; 
        for (var i=0; i<1000; i++) { 
        y += math_sind; 
        }


        例子2.保存數組的長度在循環中使用
        糟糕的處理:
        數組的長度每次都會被重復計算

        for (var i = 0; i < arr.length; i++) { 
        // do something 
        }

        更好的改進:
        更好的方法是保存數組的長度

        for (var i = 0, len = arr.length; i < len; i++) { 
        // do something 
        }

        總的來說,如果已經做了一次,我們就不需要重復的做不必要的工作。例如,作用域或者函數中多次使用到計算的一個表達式的值,保存到變量可以使它多次被使用,否則我們會過頭的聲明一個變量并賦值然后只適用一次。所以請記住這些。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript如何提升代碼性能的用法匯總

        JavaScript如何提升代碼性能的用法匯總:使用字符串累加計算風格 使用+運算會在內存中創建一個新的字符串并把連接的值賦給它。僅僅是將這個結果賦值給一個變量。 為了避免連接結果的中間變量,可以使用+=來直接賦值結果。 運行緩慢的代碼: a += 'x' + 'y';運行更快的代碼:
        推薦度:
        標簽: 提升 使用 提高
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲中文字幕无码久久综合网| 最新中文字幕免费视频| 亚洲乱码中文字幕综合234 | 亚洲第一福利网站| 免费人成在线观看视频高潮| 亚洲日韩精品无码专区网址 | 亚洲精品视频在线观看视频| 国产无遮挡裸体免费视频在线观看 | 亚洲美女免费视频| 麻豆国产精品免费视频| 国内精品免费久久影院| 亚洲中文字幕第一页在线 | 亚洲线精品一区二区三区影音先锋| 一级毛片aaaaaa视频免费看| 亚洲中文字幕无码专区| 免费国产成人18在线观看| 亚洲视频精品在线| 黄色片在线免费观看| 亚洲精品乱码久久久久久蜜桃图片| 日本一道一区二区免费看| 另类专区另类专区亚洲| 狠狠亚洲婷婷综合色香五月排名 | 国产视频精品免费视频| 亚洲av无码精品网站| 野花高清在线电影观看免费视频 | 中国china体内裑精亚洲日本| 国产区卡一卡二卡三乱码免费| 一级毛片人与动免费观看| 久久丫精品国产亚洲av不卡 | 日韩在线免费视频| 久青草国产免费观看| 亚洲AV无码乱码在线观看富二代| 91热成人精品国产免费| 精品女同一区二区三区免费播放| 亚洲一区无码精品色| 日本免费人成在线网站| 免费一级毛suv好看的国产网站| 久久久久久亚洲精品| 永久黄网站色视频免费观看| 免费福利在线视频| 在线精品自拍亚洲第一区|