這篇文章帶給大家的內容是關於ES6中模板字串用法介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
模板字串出來以後,單引號、雙引號哪個好的論點可以退出歷史舞台的,模板字串的`
最好!
單行文字
`string text`
多行文字
`string text line 1 string text line 2`
內嵌表達式
`string text ${expression} string text`
標籤語法(不太喜歡)
tag `string text ${expression} string text`
完全不care 單引號和雙引號,當然,轉義`
是不可避免的,有所得必有所失去嘛
let single=`string text, '' ""\`` // "string text, '' ""`"
\n
也可以走開了let multip=`string text line 1 string text line 2` // "string text line 1 // string text line 2"
所以我们可以这么写代码 " let dom=` 我要换行 我还要换行 ` " 虽然好像没什么卵用
這是模板字符串最大的作用了,有好極大好處呢
更強的閱讀性和更不容易錯的字符串拼接
let name='jack',age=23 let summary=`my name is ${name}, age is ${age}` console.log(summary) // "my name is jack, age is 23"
對比一下之前的字符串拼接
let name='jack',age=23 let summary='my name is ' + name + ', age is ' + age console.log(summary) // "my name is jack, age is 23"
可以內嵌表達式,表達式也可以很複雜,但不推薦
let num1 = 1, num2 = 2 `${num1} + ${num2} = ${num1 + num2}` // '1 + 2 = 3'
模板字串巢狀
let inner=`${`${'1'}`}` // 1
我不太喜歡這個特性
function myTag(strings, personExp, ageExp) { var str0 = strings[0]; // "that " var str1 = strings[1]; // " is a " var str2 = strings[2]; // " " var ageStr; if (ageExp > 99){ ageStr = 'centenarian'; } else { ageStr = 'youngster'; } return str0 + personExp + str1 + ageStr; } var output = myTag`that ${ 'Mike' } is a ${ '22' }`; console.log(output);// that Mike is a youngster
標籤函數的第一個參數strings.raw
儲存原始字串,未經轉義
function tag(strings) { console.log(strings.raw[0]); } tag`string text line 1 \n string text line 2`; // "string text line 1 \n string text line 2"
使用String.raw()
也是一樣的效果,\n
是兩個字元。
var str = String.raw`Hi\n${2+3}!`; // "Hi\n5!" str.length; // 6 str.split('').join(','); // "H,i,\,n,5,!"
源碼
let name="jack",age=23 let summary=`my name is ${name}, age is ${age}`
翻譯後
var name = "jack", age = 23; var summary = "my name is " + name + ", age is " + age;
以上是ES6中範本字串用法介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!