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