国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|Jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - ES6字符串的擴展實例

ES6字符串的擴展實例

2021-12-16 15:16知否 js教程

這篇文章主要介紹了ES6字符串的擴展實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本節我們來學習 ES6 中字符串類型的擴展,包括一些字符串對象的新增方法的使用等。

字符的 Unicode 表示法

ES6 加強了對 Unicode 的支持,JavaScript 中可以采用 \\uxxx 形式表示一個字符,其中 xxxx 表示字符的碼點。例如:

?
1
console.log("\u0075"); // u

但是這種表示法只限于碼點在 \\u0000~\\uFFFF 之間的字符。超出這個范圍的字符,必須用兩個雙字節的形式表示。

?
1
2
console.log("\uD842\uDFB7"); //
console.log("\u20BB8"); // 8

這表示,如果直接在 \\u 后面跟上超過 0xFFFF 的數值,例如 \\u20BB8,JavaScript 會理解成 \\u20BB+8。由于 \\u20BB 是一個不可打印字符,所以只會顯示一個空格,后面跟著一個 8。

ES6 對這一點做出了改進,只要將碼點放入大括號,就能正確解讀該字符。

?
1
2
3
4
5
6
7
8
9
console.log("\u{20BB7}"); //
 
console.log("\u{41}\u{42}\u{43}"); // ABC
 
let hello = 123;
console.log(hell\u{6F}); // 123
 
 
console.log('\u{1F680}' === '\uD83D\uDE80'); // true

上面代碼中,最后一個例子表明,大括號表示法與四字節的 UTF-16 編碼是等價的。

有了這種表示法之后,JavaScript共有6種方法可以表示一個字符。

?
1
2
3
4
5
'\z' === 'z' // true
'\172' === 'z' // true
'\x7A' === 'z' // true
'\u007A' === 'z' // true
'\u{7A}' === 'z' // true

遍歷器接口

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

示例:
例如我們遍歷字符串 xkd:

?
1
2
3
for (let i of 'xkd') {
 console.log(i)
}

輸出:

x
k
d

除了遍歷字符串,這個遍歷器最大的優點是可以識別大于 0xFFFF 的碼點,傳統的 for 循環無法識別這樣的碼點。

示例:

?
1
2
3
4
5
6
7
8
9
let a = String.fromCodePoint(0x20BB7);
 
for (let i = 0; i < a.length; i++) {
 console.log(a[i]);
}
 
for (let i of a) {
 console.log(i);
}

上述代碼中,字符串 a 只有一個字符,但是 for 循環會認為它包含兩個字符(都不可打印),而 for...of 循環會正確識別出這一個字符。

模板字符串的使用

我們在 JavaScript 語言中,如果要輸出內容,通常可以像下面這樣寫的:

?
1
2
3
4
var name = "俠課島";
var age = 10;
console.log("我的名字是"+ name + ",我今年" + age + "歲了。" );
// 輸出:我的名字是俠課島,我今年10歲了。

這種寫法需要使用大量的雙引號和加號來拼接才能得到我們需要的模板,非常不方便。

而在 ES6 中提供了模板字符串,只需要將想要輸出的內容用反引號標識,然后變量部分使用 ${} 括起來即可。

示例:
上面的例子可以用模板字符串寫成下面這樣:

?
1
2
3
4
5
var name = "俠課島";
var age = 10;
console.log( `我的名字是${name} ,我今年${age}歲了。`);
 
// 輸出:我的名字是俠課島,我今年10歲了。

這樣寫很明顯語法語法簡潔了很多,不需要再使用大量的雙引號和加號來拼接字符串和變量。

模板字符串都是使用反引號表示的,如果我們希望在模板字符串中使用反引號,則需要在前面使用反斜杠 \\ 轉義。

示例:

?
1
2
let content = `\`hello\` xkd!`;
console.log(content); // 輸出:`hello` xkd!

如果使用模板字符串表示多行字符串,所有的空格和縮進都會被保留在輸出之中。

?
1
2
console.log( `你好\` 我叫做俠課島,
今年3歲啦!`);

執行代碼后,會直接輸出如下所示內容:

你好` 我叫做俠課島,
 今年3歲啦!

在模板字符串中嵌入變量

如果我們想要在模板字符串中嵌入變量,那么變量需要寫在 ${} 之中才能夠正常使用,否則會當做普通字符串輸出。

示例:

?
1
2
3
4
var name= "xkd";
console.log(`你好,${name}`);
 
// 輸出:你好,xkd

但是如果模板字符串中的變量沒有被聲明,將導致報錯喲。

?
1
2
let content = `Hello, ${name}`;
console.log(content);  // 輸出:ReferenceError: name is not defined

由于模板字符串的大括號內部,就是執行 JavaScript 代碼,因此如果大括號內部是一個字符串,將會原樣輸出。

?
1
2
let content = `Hello, ${"xkd"}`;
console.log(content); // 輸出:Hello, xkd

大括號 ${} 內部可以放入任意的 JavaScript 表達式,可以進行運算,以及引用對象屬性。

?
1
2
3
4
5
var a = 10;
var b = 20;
console.log(`a=${++a}, b=${a+b}`);
 
// 輸出:a=11, b=31

在模板字符串中調用函數

ES6 中模板字符串有一個更強大的功能,就是我們可以在模板字符串之中調用函數。

示例:

?
1
2
3
4
5
6
function show() {
 return "俠課島";
}
 
console.log(`你好,你叫什么名字?
你好,我叫${show()}`);

執行代碼后,輸出內容如下所示:

你好,你叫什么名字?
你好,我叫俠課島

如果大括號中的值不是字符串,將按照一般的規則轉為字符串。比如,大括號中是一個對象,將默認調用對象的toString 方法。

判斷是否包含子字符串

JavaScript 想要判斷字符串是否包含子字符串,可以使用 indexOf() 方法。但是在 ES6 中又新增了三種方法可以用來判處案是否包含子字符串,如下所示:

  • includes():返回布爾值,表示是否找到了參數字符串。
  • startsWith():返回布爾值,表示參數字符串是否在原字符串的頭部。
  • endsWith():返回布爾值,表示參數字符串是否在原字符串的尾部。

示例:

這三個方法都可以接受兩個參數,第一個參數為需要搜索的字符串,第二個參數為可選的搜索起始位置索引:

?
1
2
3
4
5
let string = "hello, xkd";
 
console.log(string.includes("hello")); // true
console.log(string.startsWith("x", 7)); // true
console.log(string.endsWith("abc"));  // false

注意上述方法的返回值都為布爾值,所以如果需要知道子字符串的位置,還是得用 indexOf() 和 lastIndexOf() 方法。

字符串重復

在 ES6 中新增了一個 repeat() 方法,用于返回新的字符串,表示將字符串重復指定次數返回。

示例:

?
1
console.log("a".repeat(5)); // 輸出:aaaaa

如果 repeat() 函數中的參數為小數,則會向下取整:

?
1
2
3
console.log("a".repeat(3.1)); // 輸出:aaa
console.log("b".repeat(4.5)); // 輸出:bbbb
console.log("c".repeat(5.9)); // 輸出:ccccc

如果參數為 0 到 -1 之間的小數,會進行取整運算,0 至 -1 之間的小數取整得到 -0,等同于重復零次:

?
1
2
console.log("a".repeat(-0.1)); // 輸出:""
console.log("b".repeat(-0.9)); // 輸出:""

如果傳入的參數是字符串,則會先將字符串轉化為數字:

?
1
2
console.log("a".repeat("five")); // 輸出: ""
console.log("b".repeat("3"));  // 輸出: bbb

字符串補全

ES6 中為字符串補全提供了兩個新的方法,如下所示:

  • padStart():返回新的字符串,表示用參數字符串從頭部(左側)補全原字符串。
  • padEnd():返回新的字符串,表示用參數字符串從尾部(右側)補全原字符串。

這兩個方法接受兩個參數,第一個參數是指定生成的字符串的最小長度,第二個參數是用來補全的字符串。如果沒有指定第二個參數,默認用空格填充。

示例:

?
1
2
3
console.log("xkd".padStart(5, "o")); // 輸出:ooxkd
console.log("a".padEnd(3, "xkd"));  // 輸出:axk
console.log("b".padStart(3));    // 輸出: b

如果指定的長度小于或者等于原字符串的長度,則返回原字符串:

?
1
2
console.log("hello".padStart(3,"a")); // hello
console.log("hello".padStart(7,"a")); // aahello

如果原字符串加上補全字符串長度大于指定長度,則截去超出位數的補全字符串:

?
1
2
console.log("hello".padEnd(7,",xkd!"));  // hello,x
console.log("abcde".padEnd(10,"fghijk")); // abcdefghij

還可以用于補全位數:

?
1
2
console.log("1".padStart(10, "0")); // 0000000001
console.log("2".padEnd(10, "0"));  // 2000000000

到此這篇關于ES6字符串的擴展實例的文章就介紹到這了,更多相關ES6字符串擴展內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://segmentfault.com/a/1190000038557524

延伸 · 閱讀

精彩推薦
  • js教程Jquery+javascript實現支付網頁數字鍵盤

    Jquery+javascript實現支付網頁數字鍵盤

    這篇文章主要為大家詳細介紹了Jquery+javascript實現支付網頁數字鍵盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    юноша 25602021-12-15
  • js教程微信小程序學習之自定義滾動彈窗

    微信小程序學習之自定義滾動彈窗

    這篇文章主要給大家介紹了關于微信小程序學習之自定義滾動彈窗的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考...

    юноша8952021-12-15
  • js教程javascript的事件描述

    javascript的事件描述

    本文主要為大家介紹javascript事件的基礎知識,有需要的朋友可以參考下...

    js教程網9342021-12-15
  • js教程ES5和ES6中類的區別總結

    ES5和ES6中類的區別總結

    這篇文章主要給大家介紹了ES5和ES6中類的區別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    Totora611982021-12-16
  • js教程JavaScript中arguments的使用方法詳解

    JavaScript中arguments的使用方法詳解

    這篇文章主要給大家介紹了關于JavaScript中arguments的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    等待的L先生3522021-12-15
  • js教程ES6字符串的擴展實例

    ES6字符串的擴展實例

    這篇文章主要介紹了ES6字符串的擴展實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小...

    知否5432021-12-16
  • js教程原生JS實現京東查看商品點擊放大

    原生JS實現京東查看商品點擊放大

    這篇文章主要為大家詳細介紹了原生JS實現京東查看商品點擊放大,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    A.香辣雞腿堡7082021-12-15
  • js教程Javascript實現漢字和拼音互轉的終極方案

    Javascript實現漢字和拼音互轉的終極方案

    網上關于JS實現漢字和拼音互轉的文章很多,但是比較雜亂,有的不支持多音字、不支持聲調或者字典文件太大,無法根據實際需要滿足需求。這篇文章給...

    我是小茗同學9982021-12-15
主站蜘蛛池模板: 黄色小视频在线免费观看 | 亚洲国产精品激情在线观看 | 青青草视频在线免费观看 | 欧美福利视频 | 一区二区三区高清视频在线观看 | av免费资源 | 在线看片你懂得 | 99视频精品| 久久精品国产亚洲一区二区三区 | 欧美精品一区二区在线观看 | 欧美精品在线一区二区三区 | 国产一区二区三区久久 | 亚洲精品久久久久久久久久久 | 天天艹| 在线激情网站 | 精品中文字幕一区 | 亚洲高清毛片一区二区 | 午夜精品视频 | 成人久久久久爱 | 精品福利网站 | 91麻豆精品国产91久久久资源速度 | 日本动漫一区 | 久久综合一区 | 国产成人精品免费视频 | 日韩有码在线播放 | 韩日av在线 | 久久久久久一区 | 日韩在线视频一区 | 日韩一区精品视频 | 亚洲国产精品成人精品 | 精品成人免费 | 91色乱码一区二区三区 | 国产日产久久高清欧美一区 | 亚洲日本网站 | 免费成人福利视频 | 人人干操 | 不卡的免费av| 午夜亚洲 | 亚洲精品第一 | 伊人久久在线 | 午夜激情免费看 |