摘要:一個介于和之間的整數數學系統的基礎,表示上述字符串的基數。當未指定基數時,不同的實現會產生不同的結果,通常將值默認為。例如將看作進制數,返回十進制數實現原理重復指定字符串重復字符串次默認次替換字符串同分割為數組同比多了第三個參數。
lodash.js是一款超火的js庫,在npm上平均周下載量達到了驚人的12,374,096,github start36K!大量框架都用到了lodash,包括擁有123kstart的vue本文對比lodash英文文檔,加上一些小栗子和個人的經驗~~,希望能幫到你們
lodash采用了immutable的思想,永遠不會改變原數據,而是會返回一個新的結果
String 字符串操作 camelCase 轉換駝峰命名_.camelCase([string=""])
console.log(_.camelCase("Foo Bar")) // => "fooBar" console.log(_.camelCase("--foo-bar--")) // => "fooBar" console.log(_.camelCase("__FOO_BAR__")) // => "fooBar" console.log(_.camelCase("/\__FOO_BAR__*9")) // "fooBar9" console.log(_.camelCase("fooBarbar_bar")) // fooBarbarBar
字符串中非數字和字母都會被過濾掉,然后再轉換為駝峰capitalize 轉換大寫
_.capitalize([string=""])
console.log(_.capitalize("FRED")); // => "Fred"
聯想: 同string.prototype.toLocaleUpperCase();deburr 清理符號
_.capitalize([string=""])
deburr轉換 Latin-1 Supplement和Latin Extended-A 為普通拉丁字母并且移除變音符號
_.deburr("déjà vu"); // => "deja vu"
一般用不到...
endsWith 判斷是否是某個字符串結尾_.endsWith([string=""], [target], [position=string.length])
console.log(_.endsWith("abcdef3", "c", 3)) // true console.log(_.endsWith("abcdef3", "c", 2)) // false
主要是第三個參數,不填表示檢查整個字符串,有值代表從左截取幾個字符,從截取的字符中進行判斷escape 轉義html實體字符ECMAScript 6中已經加入string.prototype.endsWith()方法
_.escape([string=""])
會將&裝換成&, < -> <, > -> > "" -> "。其他轉義字符,如:×(乘號),÷(除號)等不會轉義,請用he這樣的專業處理轉義的庫
console.log(_.escape(`a as &""" *`)) // a as &'"" *escapeRegExp 轉義正則表達式特殊字符
_.escapeRegExp([string=""])
正則表達式中的特殊字符都會加""處理
console.log(_.escapeRegExp("[lodash](https://lodash.com.../)")) // [lodash](https://lodash.com.../)kebabCase 轉換成kebabCase格式
總結: 存在四種case格式
CamelCase: TheQuickBrownFoxJumpsOverTheLazyDog
SnakeCase: the_quick_brown_fox_jumps_over_the_lazy_dog
KebabCase: the-quick-brown-fox-jumps-over-the-lazy-dog
Studlycaps: tHeqUicKBrOWnFoXJUmpsoVeRThElAzydOG
查看case的具體文檔
其他轉換case語法通camelCaselowerCase 轉換小寫
_.lowerCase([string=""])
_.lowerCase("--Foo-Bar--"); // => "foo bar" _.lowerCase("fooBar"); // => "foo bar" _.lowerCase("__FOO_BAR__"); // => "foo bar"
通capitalize
聯想: string.prototype.toLocaleLowerCaselowerFirst 轉換第一個字符為小寫
console.log(_.lowerFirst("DS")) // dS console.log(_.lowerFirst("__DS")) // __DS
無法過濾非字母字符pad 填充字符
_.pad([string=""], [length=0], [chars=" "])
有三個參數: 原字符串,長度,填充字符
如果原字符串長度短于給定的長度,則原字符串左右兩邊會填充指定字符(默認為空格),如果不能平均分配則會被截斷。
_.pad("abc", 8); // => " abc " _.pad("abc", 8, "_-"); // => "_-abc_-_" _.pad("abc", 3); // => "abc"padEnd 在結尾處填充字符
_.padEnd([string=""], [length=0], [chars=" "])
如果原字符串長度短于給定的長度,則原字符串右邊會填充指定字符(默認為空格),如果填充字符超出長度則會被截斷
_.padEnd("abc", 6); // => "abc " _.padEnd("abc", 6, "_-"); // => "abc_-_" _.padEnd("abc", 3); // => "abc"padStart 在開始處填充字符
_.padStart([string=""], [length=0], [chars=" "])
如果原字符串長度短于給定的長度,則原字符串左邊會填充指定字符(默認為空格),如果填充字符超出長度則會被截斷
_.padStart("abc", 6); // => " abc" _.padStart("abc", 6, "_-"); // => "_-_abc" _.padStart("abc", 3); // => "abc"parseInt 解析字符串為數字
parseInt(string, radix);
string
要被解析的值。如果參數不是一個字符串,則將其轉換為字符串(使用 ToString 抽象操作)。字符串開頭的空白符將會被忽略。
radix
一個介于2和36之間的整數(數學系統的基礎),表示上述字符串的基數。比如參數"10"表示使用我們通常使用的十進制數值系統。始終指定此參數可以消除閱讀該代碼時的困惑并且保證轉換結果可預測。當未指定基數時,不同的實現會產生不同的結果,通常將值默認為10。
返回值: 返回解析后的整數值。 如果被解析參數的第一個字符無法被轉化成數值類型,則返回 NaN
radix參數為n 將會把第一個參數看作是一個數的n進制表示,而返回的值則是十進制的。例如:
_.parseInt("123", 5) // 將"123"看作5進制數,返回十進制數38 => 1*5^2 + 2*5^1 + 3*5^0 = 38
實現原理es5 parseInt
repeat 重復指定字符串_.repeat([string=""], [n=1])
重復string字符串n次, 默認1次
_.repeat("*", 3); // => "***" _.repeat("abc", 2); // => "abcabc" _.repeat("abc", 0); // => ""replace 替換字符串
_.replace([string=""], pattern, replacement)
同es5 string.prototype.replace
_.replace("Hi Fred", "Fred", "Barney"); // => "Hi Barney" console.log(_.replace("Hi Fred", "Fred", () => "ffffddd")) // Hi ffffdddsplit 分割為數組
_.split([string=""], separator, [limit])
同string.prototype.split, 比es5多了第三個參數。
如果第三個參數小于數組長度,則返回對應參數長度數組,如:
_.split("a-b-c", "-", 1) // ["a"]
大于數組長度,返回原本分割的數組
_.split("a-b-c", "-", 5) // ["a", "b", "c"]startsWith 判斷是否是某個字符開頭
同MDN: string.prototype.startsWith
想造福人類來著的,結果晚了... @小呆 https://www.css88.com/doc/lodash
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100465.html
摘要:是函數柯里化的函數。例子柯里化有個常見作用參數復用構建高階函數延遲計算。是的,它其實就是柯里化的具體應用構建高階函數。這個是我認為的中最有意思的方法。不過要注意最后的。這同樣是用來組合高階函數的一個方法。 最近在學習JS函數式編程相關的內容,于是詳細的翻看了Lodash的文檔,感到別有洞天。這里把自己對一些API的使用和看法做個筆記記錄下。 Array _.head/_.last 例子...
摘要:是強大的,你可以做很多事情沒有。如果你想要你的項目需要更少的依賴,并且你清楚的知道你的目標瀏覽器,那么你可能不需要。我們并不需要為了操作等再學習一下的。但是,他們往往需要更多的資源,功能不強,難以通過腳本自動化。 1 You-Dont-Need-JavaScript CSS是強大的,你可以做很多事情沒有JS。 本文教你使用原生CSS做下面的事情。 內容目錄 手風琴/切換 圓盤傳送帶...
摘要:是強大的,你可以做很多事情沒有。如果你想要你的項目需要更少的依賴,并且你清楚的知道你的目標瀏覽器,那么你可能不需要。我們并不需要為了操作等再學習一下的。但是,他們往往需要更多的資源,功能不強,難以通過腳本自動化。 1 You-Dont-Need-JavaScript CSS是強大的,你可以做很多事情沒有JS。 本文教你使用原生CSS做下面的事情。 內容目錄 手風琴/切換 圓盤傳送帶...
摘要:為了盡可能提升互通性,已經成為函數式編程庫遵循的實際標準。與輕量級函數式編程的概念相反,它以火力全開的姿態進軍的函數式編程世界。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關于譯者:這是一個流淌著滬江血液的純粹工程:認真,是 HTML 最堅實的梁柱;分享,是 CSS 里最閃耀的一瞥;總結,...
摘要:構建是為了在中為常見任務提供實用程序功能。所有功能都自動進行,并且相應地安排傳遞的參數以便于使用。在星級,是一個用于處理本機對象的實用程序庫。該庫沒有外部依賴關系,這是一個將事件作為序列進行測試的現場演示。 由于Javascript在2018年仍然是最受歡迎和最廣泛使用的編程語言,因此圍繞它擴展了生態系統。 showImg(https://segmentfault.com/img/re...
閱讀 623·2023-04-26 01:53
閱讀 2749·2021-11-17 17:00
閱讀 2880·2021-09-04 16:40
閱讀 1983·2021-09-02 15:41
閱讀 830·2019-08-26 11:34
閱讀 1222·2019-08-26 10:16
閱讀 1335·2019-08-23 17:51
閱讀 815·2019-08-23 16:50