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