成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

超火js庫: Lodash API例子

zhunjiee / 1665人閱讀

摘要:一個(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 SupplementLatin 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)行判斷

ECMAScript 6中已經(jīng)加入string.prototype.endsWith()方法

escape 轉(zhuǎn)義html實(shí)體字符

_.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語法通camelCase
lowerCase 轉(zhuǎn)換小寫

_.lowerCase([string=""])

_.lowerCase("--Foo-Bar--");
// => "foo bar"
 
_.lowerCase("fooBar");
// => "foo bar"
 
_.lowerCase("__FOO_BAR__");
// => "foo bar"

capitalize

聯(lián)想: string.prototype.toLocaleLowerCase
lowerFirst 轉(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 ffffddd
split 分割為數(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

相關(guān)文章

  • Lodash的學(xué)習(xí)筆記(一)有意思的API

    摘要:是函數(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 例子...

    BingqiChen 評(píng)論0 收藏0
  • You-Dont-Need : 你不需要系列

    摘要:是強(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)琴/切換 圓盤傳送帶...

    anonymoussf 評(píng)論0 收藏0
  • You-Dont-Need : 你不需要系列

    摘要:是強(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)琴/切換 圓盤傳送帶...

    bawn 評(píng)論0 收藏0
  • 翻譯連載 | 附錄 C:函數(shù)式編程函數(shù)-《JavaScript輕量級(jí)函數(shù)式編程》 |《你不知道的J

    摘要:為了盡可能提升互通性,已經(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é),...

    Miracle 評(píng)論0 收藏0
  • 2018年你應(yīng)該知道的11個(gè)Javascript實(shí)用程序

    摘要:構(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...

    Ali_ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<