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

資訊專欄INFORMATION COLUMN

ECMAScript6 新特性——“字符串的擴展”

BlackMass / 2315人閱讀

摘要:吉字符串的遍歷器接口為字符串添加了遍歷器接口,使得字符串可以被循環(huán)遍歷。提供字符串實例的方法,用來將字符的不同表示方法統(tǒng)一為同樣的形式,這稱為正規(guī)化。返回布爾值,表示參數(shù)字符串是否在源字符串的頭部。

1 字符串的Unicode表示法

ES6 只要將碼點放入大括號,就能正確解讀該字符;

var x = "u20bb7";
document.write(x); //?7
var x = "u{20bb7}";
document.write(x); //? 可正確返回
2 codePointAt()

JavaScript對于那些需要4個字節(jié)儲存的字符(Unicode碼點大于0xFFFF的字符),JavaScript會認為它們是兩個字符。

var s = "?";

s.length // 2
s.charAt(0) // ""
s.charAt(1) // ""
s.charCodeAt(0) // 55362
s.charCodeAt(1) // 57271

ES6提供了codePointAt方法,能夠正確處理4個字節(jié)儲存的字符,返回一個字符的碼點。

var x = "u{20bb7}";
console.log(x); //吉
console.log(x.length);
console.log(x.codePointAt(0)); //134071
console.log(x.codePointAt(0).toString(16)); //20bb7
console.log(x.codePointAt(1)); //57271

codePointAt(0)返回的是十進制碼點;codePointAt(1)則返回的結(jié)果與charCodeAt方法返回的結(jié)果相同

3 String.fromCodePoint()

ES5提供String.fromCharCode方法,用于從碼點返回對應字符,但是這個方法不能識別32位的UTF-16字符(Unicode編號大于0xFFFF)。

ES6提供了String.fromCodePoint方法,可以識別0xFFFF的字符,彌補了String.fromCharCode方法的不足。在作用上,正好與codePointAt方法相反。

console.log(String.fromCharCode("0x20bb7")); //?
console.log(String.fromCodePoint("0x20bb7")); //吉
4 字符串的遍歷器接口

ES6為字符串添加了遍歷器接口,使得字符串可以被for...of循環(huán)遍歷。

這個遍歷器最大的優(yōu)點是可以識別大于0xFFFF的碼點

var text = String.fromCodePoint("0x20bb7"); //吉
for (let i = 0; i < text.length; i++) {
    console.log(text[i]);
    //?
    //?
}
for (let codePoint of text) {
    console.log(codePoint); //?
}
5 at()

ES7為字符串實例提供了at方法,可以識別Unicode編號大于0xFFFF的字符。

6 normalize()

ES6提供字符串實例的normalize()方法,用來將字符的不同表示方法統(tǒng)一為同樣的形式,這稱為Unicode正規(guī)化。

"u01D1".normalize() === "u004Fu030C".normalize()
// true

不過,normalize方法目前不能識別三個或三個以上字符的合成。

7 includes(),startsWith(),endsWith()

傳統(tǒng)上,JavaScript只有indexOf方法,可以用來確定一個字符串是否包含在另一個字符串中。ES6又提供了三種新方法。

includes():返回布爾值,表示是否找到了參數(shù)字符串。

startsWith():返回布爾值,表示參數(shù)字符串是否在源字符串的頭部。

endsWith():返回布爾值,表示參數(shù)字符串是否在源字符串的尾部。

var str = "string";
console.log(str.includes("r")); //True
console.log(str.startsWith("str")); //True
console.log(str.endsWith("g")); //True

另外,他們都支持第二個參數(shù)用來表示開始搜索的位置,但endsWith針對的則是前n個字符

8 repeat()

repeat方法返回一個新字符串,表示將原字符串重復n次。

var str = "string";
console.log(str.repeat(2)); //stringstring
9 padStart(),padEnd()

padStart用于頭部補全,padEnd用于尾部補全。

兩個參數(shù):1個是最小字符串長度;另一個是補全的字符串

10 模板字符串

模板字符串(template string)是增強版的字符串,用反引號(`)標識。它可以當作普通字符串使用,也可以用來定義多行字符串,或者在字符串中嵌入變量。

var name = "Oliver"; //變量
var info = `hello world
 welcome you`; //多行字符串
console.log(`hello ${name}`,info); //嵌套變量,輸出多行字符串

變量應該寫在${}大括號里面,并且可以放入任意的JS表達式;

11 標簽模板

下面的例子實際上是函數(shù)參數(shù)如下的調(diào)用:

tag(["Hello ", "; Infomation: ", ""],Oliver,welcome to use the system.);

tag函數(shù)寫法如下:

let user = {
    name: "Oliver",
    info: "welcome to use the system."
};
tag`Hello ${user.name}; Infomation: ${user.info}`;
function tag(s, v1, v2) {
    console.log(s); //["Hello ", "; Infomation: ", ""]
    console.log(v1); //Oliver
    console.log(v2); //welcome to use the system.
}
12 String.raw()

String.raw方法,往往用來充當模板字符串的處理函數(shù),返回一個斜杠都被轉(zhuǎn)義(即斜杠前面再加一個斜杠)的字符串,對應于替換變量后的模板字符串。

String.raw`Hi
${2+3}!`;
// "Hi
5!"

String.raw`Hiu000A!`;
// "Hiu000A!"

String.raw方法也可以作為正常的函數(shù)使用。這時,它的第一個參數(shù),應該是一個具有raw屬性的對象,且raw屬性的值應該是一個數(shù)組。

String.raw({ raw: "test" }, 0, 1, 2);
// "t0e1s2t"

// 等同于
String.raw({ raw: ["t","e","s","t"] }, 0, 1, 2);

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

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

相關(guān)文章

  • 【前端】ES6入門基礎(chǔ)知識

    摘要:關(guān)于的入門了解新增模板字符串為提供了簡單的字符串插值功能箭頭函數(shù)操作符左邊為輸入的參數(shù),而右邊則是進行的操作以及返回的值。將對象納入規(guī)范,提供了原生的對象。增加了和命令,用來聲明變量。 關(guān)于ES6的入門了解 新增模板字符串(為JavaScript提供了簡單的字符串插值功能)、箭頭函數(shù)(操作符左邊為輸入的參數(shù),而右邊則是進行的操作以及返回的值Inputs=>outputs。)、for-o...

    philadelphia 評論0 收藏0
  • ECMAScript6 特性——“l(fā)et和const命令”

    摘要:基本用法所聲明的變量,只在命令所在的代碼塊內(nèi)有效。在循環(huán)中適合使用不存在變量提升不像那樣會發(fā)生變量提升現(xiàn)象暫時性死區(qū)只要塊級作用域內(nèi)存在命令,它所聲明的變量就綁定這個區(qū)域,不再受外部的影響。塊級作用域?qū)嶋H上為新增了塊級作用域。 1 let 基本用法 所聲明的變量,只在let命令所在的代碼塊內(nèi)有效。 { let b = 100; console.log(b); //100...

    PascalXie 評論0 收藏0
  • ECMAScript6 特性——“正則擴展

    摘要:第二個參數(shù)指定修飾符,如果存在則使用指定的修飾符。屬性表示是否設(shè)置了修飾符屬性的屬性返回正則表達式的正文的屬性返回正則表達式的修飾符字符串必須轉(zhuǎn)義,才能作為正則模式。 1 RegExp構(gòu)造函數(shù) ES6 允許RegExp構(gòu)造函數(shù)接受正則表達式作為參數(shù)。第二個參數(shù)指定修飾符,如果存在則使用指定的修飾符。 var regexp = new RegExp(/xyz/i, ig); consol...

    Shisui 評論0 收藏0
  • ECMAScript6 特性——“數(shù)值擴展

    摘要:二進制和八進制表示法提供了二進制和八進制數(shù)值的新的寫法,分別用前綴或和或表示。用來檢查是否為有窮以及是否為這兩個新方法只對數(shù)值有效,非數(shù)值一律返回。引入了和這兩個常量,用來表示這個范圍的上下限。因為有精度限制,超過的次方的值無法精確表示。 1 二進制和八進制表示法 ES6提供了二進制和八進制數(shù)值的新的寫法,分別用前綴0b(或0B)和0o(或0O)表示。 console.log(0b10...

    Dean 評論0 收藏0
  • ECMAScript6 特性——“變量解構(gòu)賦值”

    摘要:數(shù)組的解構(gòu)賦值允許按照一定模式,從數(shù)組和對象中提取值,對變量進行賦值,這被稱為解構(gòu)。如果變量名與屬性名不一致,必須寫成下面這樣。 1 數(shù)組的解構(gòu)賦值 ES6允許按照一定模式,從數(shù)組和對象中提取值,對變量進行賦值,這被稱為解構(gòu)(Destructuring)。 基本用法 { var [a,[b,c],d,,...f] = [1,[2,3],4,5,6,7]; console...

    Eric 評論0 收藏0

發(fā)表評論

0條評論

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