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

資訊專欄INFORMATION COLUMN

JavaScript的String

DangoSky / 2864人閱讀

摘要:如果小于的長(zhǎng)度,那返回拼接的字符串用拼在前面以達(dá)到的長(zhǎng)度,如果必要的話,重復(fù)參數(shù)目標(biāo)長(zhǎng)度。如果小于的長(zhǎng)度,那么返回用來(lái)拼接的字符串。的值為統(tǒng)一化這個(gè)方法把給定的統(tǒng)一為特定的某種格式。

String作為JS里面最常用的數(shù)據(jù)類型,我好像沒(méi)有好好地總結(jié)過(guò),所以偶爾有些不常用的,細(xì)節(jié)的知識(shí)點(diǎn)還是不是100%的自信,希望寫篇文章來(lái)鞏固一下。文章主要分為一下幾部分:

1:創(chuàng)建一個(gè)字符串的3種方法以及區(qū)別
2:字符串的常用屬性
3:字符串的常用方法
4:一些易犯的錯(cuò)誤

接下來(lái)就從前到后來(lái)梳理一下:

1:創(chuàng)建一個(gè)字符串的3種方法以及區(qū)別

創(chuàng)建一個(gè)字符串的常用方法有:

1: let a = "x"; //字符串字面量的方式
2: let b = String("x"); //利用全局的String對(duì)象生成
3: let c = new String("x"); //創(chuàng)建一個(gè)String對(duì)象

以上的三種方法中,第三種是創(chuàng)建了一個(gè)對(duì)象,第一種和第二種都是創(chuàng)建一個(gè)string類型的數(shù)據(jù),如果對(duì)a,b,c分別調(diào)用typeof結(jié)果為:

typeof a; //"string"
typeof b; //"string"
typeof b; //"object"

我們暫且把以上的第一種和第二種叫‘原始字符串’,把第三種叫做‘字符串對(duì)象’。原始字符串和字符串對(duì)象在遇到eval()方法的時(shí)候,也表現(xiàn)得不一樣:

eval(new String("2 + 2")); // returns a String object containing "2 + 2"
eval("2 + 2");             // returns 4

當(dāng)然我們可以對(duì)字符串對(duì)象調(diào)用valueOf方法,得到其對(duì)應(yīng)的原始字符串:

eval(new String("2 + 2").valueOf()); // returns 4
2:字符串的常用屬性

1: length
通俗地說(shuō),length屬性返回一個(gè)字符串的字符個(gè)數(shù),JavaScript采用UTF-16編碼,實(shí)際上length屬性就是返回一個(gè)字符串有多少個(gè)UTF-16編碼。

 ‘a(chǎn)bcd’.length; //4
 
3: 字符串的常用方法

1: 獲取字符串特定位置的字符

1:string.charAt(index); //返回某位的字符
2:string.charCodeAt(index); //返回某位上的字符的utf-16編碼
3:string.codePointAt(pos); //返回某位上的Unicode point值

example:

1: "ABC".charAt(0); // 65
2: "ABC".charCodeAt(0); //65
3: "ABC".codePointAt(0); //65
4: "uD800uDC00".codePointAt(0); // 65536

2: 字符串拼接

1:string.concat(string1[, string2, ..., stringN]);
    1: 返回一個(gè)新字符串,此方法對(duì)原字符串沒(méi)有影響
    2: 非string類型的參數(shù)會(huì)先轉(zhuǎn)為string類型再拼接

example:

1: "abc".concat("xx"); //"abcxx"
2: "".concat(...["a", "b", "c"]); //"abc"
3: "".concat([]): //""
4: "".concat(true); // "true"
5: "".concat(4, 5); //"45"
2:string.padEnd(targetLength, padString)

用padString拼在string的后面達(dá)到targetLength的長(zhǎng)度,如果有必要的話會(huì)重復(fù)padString
參數(shù):

targetLength: 目標(biāo)長(zhǎng)度。如果小于string的長(zhǎng)度,那返回string
padString: 拼接的字符串

example:

1: "abc".padEnd(1); // "abc"
2: "abc".padEnd(7, "foo"); "abcfoof"
3: string.padStart(targetLength, padString)

用padString拼在string前面以達(dá)到targetLength的長(zhǎng)度,如果必要的話,重復(fù)padString
參數(shù):

targetLength: 目標(biāo)長(zhǎng)度。如果小于string的長(zhǎng)度,那么返回string
padString: 用來(lái)拼接的字符串。如果省略,則用空字符串。

example:

1: "abc".padStart(7, "foo"); //"foofabc"
2: "abc".padStart(1);// "abc"
3: "abc".padStart(7); "    abc"
4: string.repeat(count)

對(duì)string重復(fù)count次數(shù)之后返回一個(gè)新字符串
參數(shù):

count: 重復(fù)的次數(shù)
count必須是0到正無(wú)窮之間的有限的次數(shù),負(fù)數(shù)或者無(wú)窮大的數(shù)會(huì)拋出exception;如果count是0,則返回空字符串

example:

1: "abc".repeat(2); // "abcabc"
2: "abc".repeat(0); //""
3: "abc".repeat(-1);// Uncaught RangeError: Invalid count value
4: "abc".repeat(1/0);//Uncaught RangeError: Invalid count value

3: 邏輯判斷的方法

1:string.endsWith(subString, length);  //是否以xx結(jié)束?

參數(shù):

subString: 子字符串
length: 原字符串某個(gè)位置作為尾部(字符串第一位是1,不是0)。length可以省略。

example:

1: "abcd".endsWith("d"); //true
2: "abcd".endsWith("b"); //fasle
3: "abcd".endsWith("b", 2); //true
2: string.includes(subString, index); //是否包含xx?

參數(shù):

subString: 是否包含的子字符串
index: 從元字符串的那個(gè)位置開始(第一位是0, 不是1)

example:

1: "abcd".includes("a"); // true
2: "abcd".includes("a", 1); // false
3: "abcd".includes("a", 0);// true

4: 返回?cái)?shù)字的方法

1:string.indexOf(subString, fromIndex); 
返回第一次遇到substring的位置,如果找不到,返回-1

參數(shù):

subString:要查找的子字符串
fromIndex:從原字符串哪個(gè)位置開始找,默認(rèn)從0開始

example:

1: "abcdefg".indexOf("d"); // 3
2: "abcdefg".indexOf("d", 3); // 3
3: "abcdefg".indexOf("d", 4); // -1
2: string.lastIndexOf(subString, fromIndex)
返回最后一次遇到subString的坐標(biāo),找不到的話返回-1

參數(shù):

subString:要查找的子字符串
fromIndex:從哪個(gè)坐標(biāo)開始往后(backwards)找,默認(rèn)為最后一位的坐標(biāo)(string.length -1).

example:

1: "012345".lastIndexOf("3", 2); // -1
2: "012345".lastIndexOf("3", 3); // 3
3: "012345".lastIndexOf("3", 5); // 3

5:比較

1:string.localeCompare(string2[,locales[, options]])
string與string2比較,如果string在string2前面則返回負(fù)數(shù),后面則返回正數(shù),相等返回0。

locale是場(chǎng)所,區(qū)域的意思,所以localeCompare是在特定場(chǎng)合(不同的語(yǔ)言等)下的比較。這些特定的場(chǎng)合可以由參數(shù)locales和options設(shè)置。
關(guān)于localeCompare請(qǐng)參考MDN

6:匹配

1:string.match(regexp);

參數(shù):
regexp: 正則表達(dá)式。

如果沒(méi)有此參數(shù)的話,match()會(huì)返回一個(gè)空Array([])。
如果給了此參數(shù),string有匹配的話,會(huì)返回一個(gè)Array, 第一個(gè)元素是匹配到的完整字符串,接下來(lái)的項(xiàng)是匹配大括號(hào)里面的內(nèi)容得到到的結(jié)果。
example:

var str = "For more information, see Chapter 3.4.5.1";
var re = /see (chapter d+(.d)*)/i;
var found = str.match(re);
found的值為:["see Chapter 3.4.5.1", "Chapter 3.4.5.1", ".1", index: 22, input: "For more information, see Chapter 3.4.5.1", groups: undefined]   

7: 統(tǒng)一化

1:string.normalize([form])

這個(gè)方法把給定的string,統(tǒng)一為特定的某種Unicode格式。

背景:Unicode允許你對(duì)同一個(gè)字符采用不用的字節(jié)來(lái)編碼,如果遇到某些需要根據(jù)字節(jié)來(lái)比較的情況,那對(duì)于不同編碼方式的字符,那這時(shí)候就會(huì)出問(wèn)題。所以,對(duì)于這種情況,可以先把字符都轉(zhuǎn)為統(tǒng)一的編碼方式再比較。
參數(shù):form
form可選的值有: "NFC", "NFD", "NFKC", "NFKD", 分別的意思是:

NFC: Normalization Form Canonical Composition
NFD: Normalization Form Canonical Decomposition
NFKC: Normalization Form Compatibility Composition
NFKD: Normalization Form Compatibility Decomposition

其中:

Composition(NFC和NFKC)用盡可能少的字節(jié)來(lái)代表字符
Decomposition(NFD和NFKD)用字符拆開,用每一部分來(lái)代碼字符。例如á被分解為a和′
Canonical (NFC和NFD)把連字作為單個(gè)字符,比如?
Compatibility (NFKC和NFKD)把連字拆分開,比如?被拆分為o+e

example:

var str = "u1E9Bu0323";
str.normalize("NFD"); // "u017Fu0323u0307"
str.normalize("NFKC"); // "u1E69"

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/93725.html

相關(guān)文章

  • javascript 中,為什么 [1,2] + [3,4] 不等于 [1,2,3,4]?

    摘要:但是在使用運(yùn)算符時(shí),在這兩種情況下的工作方式是不同的。在中,數(shù)組不是基本類型,它的存在僅僅是一個(gè)糖衣語(yǔ)法,它其實(shí)是類的實(shí)例。然而,對(duì)于算數(shù)運(yùn)算符和表現(xiàn)的為數(shù)字。課外作業(yè)檢查其他的瀏覽器兼容性。 在 stackoverflow 上有人提問(wèn):arrays - Why does [1,2] + [3,4] = 1,23,4 in JavaScript? 問(wèn)題 我想將一個(gè)數(shù)組追加到另一個(gè)數(shù)...

    MRZYD 評(píng)論0 收藏0
  • javascript 中,為什么 [1,2] + [3,4] 不等于 [1,2,3,4]?

    摘要:但是在使用運(yùn)算符時(shí),在這兩種情況下的工作方式是不同的。在中,數(shù)組不是基本類型,它的存在僅僅是一個(gè)糖衣語(yǔ)法,它其實(shí)是類的實(shí)例。然而,對(duì)于算數(shù)運(yùn)算符和表現(xiàn)的為數(shù)字。注意用戶自定義對(duì)象進(jìn)行運(yùn)算不一定總產(chǎn)生一個(gè)字符串結(jié)果。 問(wèn)題 我想將一個(gè)數(shù)組追加到另一個(gè)數(shù)組的后面,于是我在 firebug 編寫如下代碼: [1,2] + [3,4] 但是,出乎意料,它卻輸出了: 1,23,4 而沒(méi)有輸出我期...

    sydMobile 評(píng)論0 收藏0
  • 在 V8 中從 JavaScript 到 C++ 類型轉(zhuǎn)換

    摘要:本文轉(zhuǎn)載自眾成翻譯譯者亂發(fā)小生鏈接原文學(xué)習(xí)怎樣傳遞信息從到是一個(gè)非常難的事情。原因在于和兩種語(yǔ)言類型之間的巨大差異。你可以在這里查看所有的類型。這兩個(gè)組件松散和嚴(yán)格的表明一系列函數(shù)接收不同類型的參數(shù),,,和和它們的返回值。 本文轉(zhuǎn)載自:眾成翻譯譯者:亂發(fā)小生鏈接:http://www.zcfy.cc/article/3360原文:https://nodeaddons.com/type-...

    betacat 評(píng)論0 收藏0
  • Effective JavaScript讀書筆記(一)

    摘要:如果為假值,不傳或者傳入,函數(shù)都會(huì)返回但是,傳入這個(gè)值是完全有可能的,所以這種判斷形勢(shì)是不正確的或者使用來(lái)判斷也可以原始類型優(yōu)于封裝類型對(duì)象擁有六個(gè)原始值基本類型布爾值,數(shù)字,字符串,,和對(duì)象。 作為一個(gè)前端新人,多讀書讀好書,夯實(shí)基礎(chǔ)是十分重要的,正如蓋樓房一樣,底層穩(wěn)固了,才能越壘越高。從開始學(xué)習(xí)到現(xiàn)在,基礎(chǔ)的讀了紅寶書《JavaScript高級(jí)程序設(shè)計(jì)》,犀牛書《JavaScri...

    zhoutao 評(píng)論0 收藏0
  • 怪異JavaScript系列(三)

    摘要:本文的思想源自于在上的演講。我收集這些例子的主要目的是將它們整理并清楚理解它們的原理。著主要是因?yàn)榇罄ㄌ?hào)也是函數(shù)定義語(yǔ)法的一部分。自從年雙十一正式上線,累計(jì)處理了億錯(cuò)誤事件,得到了金山軟件等眾多知名用戶的認(rèn)可。 譯者按: JavaScript有很多坑,經(jīng)常一不小心就要寫bug。 原文: What the f*ck JavaScript? 譯者: Fundebug 為了保證可讀性...

    XboxYan 評(píng)論0 收藏0
  • JavaScript 到 TypeScript

    摘要:能夠根據(jù)返回語(yǔ)句自動(dòng)推斷出返回值類型,因此我們通常省略它。定義的函數(shù)類型接口就像是一個(gè)只有參數(shù)列表和返回值類型的函數(shù)定義。可索引類型具有一個(gè)索引簽名,它描述了對(duì)象索引的類型,還有相應(yīng)的索引返回值類型。 showImg(https://segmentfault.com/img/remote/1460000010018621?w=640&h=280); 本文首發(fā)在我的個(gè)人博客:http:/...

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

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

0條評(píng)論

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