您好,登錄后才能下訂單哦!
這篇文章主要講解了“javascript模板字符串怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“javascript模板字符串怎么使用”吧!
模板字符串是ES6中引入了一種新的允許嵌入表達式的字符串字面量,是一種增強版的字符串,它使用反引號來代替普通字符串中的用雙引號和單引號。通過使用模板字面量,可以在字符串中同時使用單引號和雙引號。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
模板字面量 是允許嵌入表達式的字符串字面量,是ES6 中引入了一種新的字符串字面量。你可以使用多行字符串和字符串插值功能。它們在ES2015規范的先前版本中被稱為“模板字符串”。
模板字符串使用反引號 (` `) 來代替普通字符串中的用雙引號和單引號。模板字符串可以包含特定語法(${expression})的占位符。占位符中的表達式和周圍的文本會一起傳遞給一個默認函數,該函數負責將所有的部分連接起來,如果一個模板字符串由表達式開頭,則該字符串被稱為帶標簽的模板字符串,該表達式通常是一個函數,它會在模板字符串處理后被調用,在輸出最終結果前,你都可以通過該函數來對模板字符串進行操作處理。在模版字符串內使用反引號(`)時,需要在它前面加轉義符(\)。
`\`` === "`" // --> true
模板字符串可以當作普通字符串使用,也可以用來定義多行字符串,或者在字符串中嵌入變量。
普通用法如下所示:
// 使用 ` 符號包裹的字符串稱為模板字符串 let str = `this is str` console.log(typeof str, str); //string this is str
多行模板字符串
ECMAScript 2015提供的模板字符串與普通字符串的不同的是模板字符串中的空格、縮進、換行都會被保留。
示例代碼如下所指示:
let str = `this is str` console.log(typeof str, str); /* string this is str */
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
帶標簽的模板字符串
模板字符串的功能,不僅僅是上面這些。它可以緊跟在一個函數名后面,該函數將被調用來處理這個模板字符串。這被稱為標簽模板 功能(tagged template )。
let str = 'str' console.log`this is ${str}`; // 等同于 console.log(['this is ', ''], str);
標簽模板其實不是模板,而是函數調用的一種特殊形式。“標簽”指的就是函數,緊跟在后面的模板字符串就是它的參數。
原始字符串
在標簽函數的第一個參數中,存在一個特殊的屬性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!
判斷是否包含某字符串
1、includes()方法
includes()方法用于判斷一個字符串是否包含在另一個字符串中,根據判斷結果返回true或false。
語法結構如下所示:
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
2、startsWith()方法
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
3、endsWith()方法
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
以下這兩個方法通過可以自己擴展一個不區分大小寫的。
感謝各位的閱讀,以上就是“javascript模板字符串怎么使用”的內容了,經過本文的學習后,相信大家對javascript模板字符串怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。