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

資訊專欄INFORMATION COLUMN

JavaScript的String

DangoSky / 2870人閱讀

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

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

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

接下來就從前到后來梳理一下:

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

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

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

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

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

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

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

當然我們可以對字符串對象調用valueOf方法,得到其對應的原始字符串:

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

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

 ‘abcd’.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: 返回一個新字符串,此方法對原字符串沒有影響
    2: 非string類型的參數(shù)會先轉為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的后面達到targetLength的長度,如果有必要的話會重復padString
參數(shù):

targetLength: 目標長度。如果小于string的長度,那返回string
padString: 拼接的字符串

example:

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

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

targetLength: 目標長度。如果小于string的長度,那么返回string
padString: 用來拼接的字符串。如果省略,則用空字符串。

example:

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

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

count: 重復的次數(shù)
count必須是0到正無窮之間的有限的次數(shù),負數(shù)或者無窮大的數(shù)會拋出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結束?

參數(shù):

subString: 子字符串
length: 原字符串某個位置作為尾部(字符串第一位是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: 從元字符串的那個位置開始(第一位是0, 不是1)

example:

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

4: 返回數(shù)字的方法

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

參數(shù):

subString:要查找的子字符串
fromIndex:從原字符串哪個位置開始找,默認從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的坐標,找不到的話返回-1

參數(shù):

subString:要查找的子字符串
fromIndex:從哪個坐標開始往后(backwards)找,默認為最后一位的坐標(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前面則返回負數(shù),后面則返回正數(shù),相等返回0。

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

6:匹配

1:string.match(regexp);

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

如果沒有此參數(shù)的話,match()會返回一個空Array([])。
如果給了此參數(shù),string有匹配的話,會返回一個Array, 第一個元素是匹配到的完整字符串,接下來的項是匹配大括號里面的內容得到到的結果。
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])

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

背景:Unicode允許你對同一個字符采用不用的字節(jié)來編碼,如果遇到某些需要根據(jù)字節(jié)來比較的情況,那對于不同編碼方式的字符,那這時候就會出問題。所以,對于這種情況,可以先把字符都轉為統(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é)來代表字符
Decomposition(NFD和NFKD)用字符拆開,用每一部分來代碼字符。例如á被分解為a和′
Canonical (NFC和NFD)把連字作為單個字符,比如?
Compatibility (NFKC和NFKD)把連字拆分開,比如?被拆分為o+e

example:

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

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

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/93725.html

相關文章

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

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

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

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

    sydMobile 評論0 收藏0
  • 在 V8 中從 JavaScript 到 C++ 類型轉換

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

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

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

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

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

    XboxYan 評論0 收藏0
  • JavaScript 到 TypeScript

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

    roundstones 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<