国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Javascript里面最常用的6種查找字符串的方式——以及它們的性能測試

graf / 2063人閱讀

摘要:在字符串中搜索子字符串,是最基本的操作之一,我們經常會遇到,我通常做的是,查看代碼中的其他地方,看看其他人都做了什么,然后做同樣的事情現在,我只是想提出一些最常用的選項,以及它們之間的性能比較,以防您關心性能,以便當涉及到將來的選擇時,您知

在字符串中搜索子字符串,是最基本的操作之一,我們經常會遇到,我通常做的是,查看代碼中的其他地方,看看其他人都做了什么,然后做同樣的事情!現在,我只是想提出一些最常用的選項,以及它們之間的性能比較,以防您關心性能,以便當涉及到將來的選擇時,您知道哪一個是更好的選擇!
代碼展示

下面是我在搜索字符串時經常看到的6種不同的方法:

// 1. includes (introduced in ES6) 
var string = "string to search for substring",
    substring = "sea";
string.includes(substring);

// 2. RegExp: test
var string = "string to search for substring",
    expr = /sea/;  // no quotes here
expr.test(string);

//3. string.search
var string = "string to search for substring",
    expr = "/sea/";
string.search(expr);

//4. lodash: includes
var string = "string to search for substring",
    substring = "sea";
_.includes(string, substring);

// 5. string.match
var string = "string to search for substring",
    expr = "/sea/";
string.match(expr);

// 3. string.indexOf
var string = "string to search for substring",
    substring = "sea";
string.indexOf(substring) !== -1;
性能基準測試

如果你想知道,給出一個一般長度的字符串,哪個會表現得更好,regex.test是最快的,其次是string.search(libraries by ES6),第三位屬于string.indexof方法:


前往測試頁面 →

如果放大測試字符串的規模會怎么樣?

我縮放這個字符串,把它放大1000倍(100萬字符,甚至1000萬字符),我看到string.indexof是一個贏家,雖然不是很多!
下面這是我的基準測試的結果,我創建了1~1000萬個字符的字符串來進行測試
基準測試非常大的字符串,并重復子字符串1000次:

前往測試頁面 →
譯者注:這個鏈接提供的測試內容感覺跟作者描述的測試內容不符,可能鏈接是錯的

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/110307.html

相關文章

  • 【讀書筆記】《高性能JavaScript

    摘要:性能訪問字面量和局部變量的速度是最快的,訪問數組和對象成員相對較慢變量標識符解析過程搜索執行環境的作用域鏈,查找同名標識符。建議將全局變量存儲到局部變量,加快讀寫速度。優化建議將常用的跨作用域變量存儲到局部變量,然后直接訪問局部變量。 缺陷 這本書是2010年出版的,這本書談性能是有時效性的,現在馬上就2018年了,這幾年前端發展的速度是飛快的,書里面還有一些內容考慮IE6、7、8的東...

    chengjianhua 評論0 收藏0
  • 前端性能優化指南

    摘要:前端性能優化指南優化緩存異步并不等于即時。操作性能問題主要有以下原因。發生在之前,所以相對來說會造成更多性能損耗。新引擎還對對象屬性訪問做了優化,解決方案叫,簡稱。代價是前置的掃描類型編譯優化。數組,,閉包變量不在優化范疇之列。 前端性能優化指南 AJAX優化 緩存AJAX: 異步并不等于即時。 請求使用GET: 當使用XMLHttpRequest時,而URL長度不到2K...

    Pink 評論0 收藏0
  • API

    摘要:是一個極度純凈的上傳插件,通過簡單調整就可以融入到任何項目,支持多文件上傳上傳速率動態控制真實進度監控分塊生成分塊上傳校驗秒傳暫停取消等。 跨域學習筆記 前言: 當一個資源,向與之所在服務器不同的域或端口請求另一個資源時,這個HTTP請求,我們認為是跨域的請求。出于安全考慮,瀏覽器會限制腳本發起的跨域HTTP請求。 那天后端讓我把token放到http請求頭字段里,說是為了和RN端統一...

    lsxiao 評論0 收藏0
  • 讀書筆記(03) - 性能 - JavaScript高級程序設計

    摘要:作用域鏈查找作用域鏈的查找是逐層向上查找。而全局變量和閉包則會與之相反,繼續保存,所以使用用后需手動標記清除,以免造成內存泄漏。獲取元素的屬性獲取元素的屬性等參考文檔高級程序設計作者以樂之名本文原創,有不當的地方歡迎指出。 showImg(https://segmentfault.com/img/bVburXV?w=500&h=399); 作用域鏈查找 作用域鏈的查找是逐層向上查找。查...

    warnerwu 評論0 收藏0
  • 《高性能javascript》閱讀摘要

    摘要:當執行上下文被創建時,它的作用域鏈初始化為當前運行函數的屬性中的對象。該過程搜索執行環境的作用域鏈,查找同名的標識符。搜索實例成員比從字面量或局部變量中讀取數據代價更高,再加上遍歷原型鏈帶來的開銷,這讓性能問題更為嚴重。 最近在閱讀這本Nicholas C.Zakas(javascript高級程序設計作者)寫的最佳實踐、性能優化類的書。記錄下主要知識。 加載和執行 腳本位置 放在中的...

    duan199226 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<