中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS?ES中模板字符串是什么

發布時間:2021-12-02 11:46:28 來源:億速云 閱讀:228 作者:小新 欄目:開發技術

這篇文章主要介紹了JS ES中模板字符串是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1.模板字符串是什么

模板字符串( Template String )是增強版的字符串,使用反引號(```)來代替譜通字符串中的用雙引號和單引號。它可以當作普通字符串使用,也可以用來定義多行字符串,或者在字符串中嵌入變量。

普通用法如下所示:

// 使用 ` 符號包裹的字符串稱為模板字符串
let str = `this is str`
console.log(typeof str, str); //string this is str

2.多行模板字符串

ECMAScript 2015提供的模板字符串與普通字符串的不同的是模板字符串中的空格、縮進、換行都會被保留。

示例代碼如下所指示:

let str = `this 
      is str`
console.log(typeof str, str);
/*
  string this 
      is str
*/

2.1帶表達式的模板字符串

模板字符串是支持嵌入表達式的,語法結構如下所示:

`${expression}`

示例代碼如下所示:

let str1 = `this is str1`
let str2 = `this is str2`
// 只需要將表達式寫入 ${} 中
let and = `${str1} and ${str2}`
console.log(and); // this is str1 and this is str2

3.帶標簽的模板字符串

模板字符串的功能,不僅僅是上面這些。它可以緊跟在一個函數名后面,該函數將被調用來處理這個模板字符串。這被稱為標簽模板 功能(tagged template )。

let str = 'str'
console.log`this is ${str}`;
// 等同于
console.log(['this is ', ''], str);

標簽模板其實不是模板,而是函數調用的一種特殊形式。“標簽”指的就是函數,緊跟在后面的模板字符串就是它的參數。

4.原始字符串

在標簽函數的第一個參數中,存在一個特殊的屬性raw,可以通過它來訪問模板字符串的原始字符串,而不是經過特殊替換的字符。

示例代碼如下所示:

/*
  原始字符串 應用在帶標簽的模板字符串中
  * 在函數的第一個參數中存在 raw 屬性,該屬性可以獲取字符串的原始字符串。
  * 所謂的原始字符串,指的是模板字符串被定義時的內容,而不是處理之后的內容
*/
function tag(string) {
  console.log(string.raw[0]);
}
tag `string test line1 \n string test line2` // string test line1 \n string test line2

另外,使用String.raw()方法出功能鍵原始字符串和默認模板函數和字符串連接創建是一樣的。

示例代碼如下所示:

let str = String.raw `Hi\n${2+3}!`;
// ,Hi 后面的字符不是換行符,\ 和 n 是兩個不同的字符
console.log(str); // Hi\n5!

5.判斷是否包含某字符串

5.1includes()方法

includes()方法用于判斷一個字符串是否包含在另一個字符串中,根據判斷結果返回truefalse

語法結構如下所示:

str.includes(searchString[, position])

參數說明:

  • searchString:要在此字符串中搜索的字符串。

  • position:(可選) 從當前字符串的哪個索引位置開始搜尋子字符串,默認值為 0。

值得注意的是includes()方法是區分大小寫的。

示例代碼如下所示:

let str = 'abcdef';
console.log(str.includes('c')); // true
console.log(str.includes('d')); // true
console.log(str.includes('z')); // false
console.log(str.includes('A')); // false

ECMAScript 2015提供的這個includes()方法是區分大小寫的,現在我們自己擴展一個不區分大小寫的,

示例代碼如下所示:

String.prototype.MyIncludes = function (searchStr, index = 0) {
  // 將需要判斷的字符串全部改成小寫形式
  let str = this.toLowerCase()
  // 將傳入的字符串改成小寫形式
  searchStr = searchStr.toLowerCase();
  return str.includes(searchStr, index)
}
let str = 'abcdef';
console.log(str.MyIncludes('c')); // true
console.log(str.MyIncludes('d')); // true
console.log(str.MyIncludes('z')); // false
console.log(str.MyIncludes('A')); // true

5.2startsWith()方法

startsWith()方法用來判斷當前字符串是否以另外一個給定的子字符串開頭,并根據判斷結果返回true false

語法結構如下所示:

str.startsWith(searchString[, position])

參數說明:

  • searchString:要在此字符串中搜索的字符串。

  • position:(可選) 從當前字符串的哪個索引位置開始搜尋子字符串,默認值為 0。

值得注意的是startsWith()方法是區分大小寫的。

示例代碼如下所示:

let str = 'abcdef';

/*
  * startsWith() 方法用來判斷當前字符串是否以另外一個給定的子字符串開頭, 并根據判斷結果返回 true 或 false。
  * str.startsWith(searchString[, position])
    參數說明
      searchString: 要在此字符串中搜索的字符串。 
      position: (可選) 從當前字符串的哪個索引位置開始搜尋子字符串, 默認值為 0。
  !值得注意的是startsWith() 方法是區分大小寫的。
*/
console.log(str.startsWith('a')); // true
console.log(str.startsWith('c', 2)); // true
console.log(str.startsWith('c')); // flase

5.3endsWith()方法

endsWith()方法用來判斷當前字符串是否是以另外一個給定的子字符串“結尾”的,根據判斷結果返回 true false

語法結構如下所示:

str.endsWith(searchString[, position])

參數說明:

  • searchString:要在此字符串中搜索的字符串。

  • position:(可選) 從當前字符串的哪個索引位置開始搜尋子字符串,默認值為0。

值得注意的是endsWith()方法是區分大小寫的。

示例代碼如下所示:

let str = 'abcdef';

console.log(str.endsWith('f')); // true
console.log(str.endsWith('c', 3)); // true
console.log(str.endsWith('c')); // flase

以下這兩個方法通過可以自己擴展一個不區分大小寫的。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“JS ES中模板字符串是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js es
AI

大荔县| 灵台县| 民丰县| 高唐县| 泽普县| 洛隆县| 湘阴县| 潍坊市| 东乡族自治县| 延川县| 阜阳市| 苗栗县| 婺源县| 城固县| 达拉特旗| 永清县| 新邵县| 师宗县| 阿巴嘎旗| 建阳市| 华蓥市| 赫章县| 军事| 萨嘎县| 秦安县| 白河县| 富顺县| 綦江县| 定边县| 金乡县| 博爱县| 平舆县| 镇宁| 桐梓县| 台州市| 武乡县| 六盘水市| 云浮市| 顺义区| 吉木乃县| 文山县|