亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

淺談ES6 模板字符串的具體使用方法

2024-05-06 16:40:44
字體:
來源:轉載
供稿:網友

寫在前面

關于 ES6, 也終于在 2015 年的 7 月 18 號塵埃落定了。雖然說各大瀏覽器還沒有全面的支持,不過這并不妨礙我們一顆想要擼一把的心。在后端,可以使用 Node.js(0.12+)或 io.js, 前端的話,也可以使用Babel 或Traceur 進行語法預轉義成 ES5使用 。

關于該系列(不知道能不能成為一個系列,總是各種懶),會沒有規律的挑選一些內容來學習。歡迎大家積極糾錯,留言探討。

模板字符串(template strings)

用法

// 普通字符串`In JavaScript '/n' is a line-feed.`// 多行字符串`In JavaScript this isnot legal.`// 字符串中嵌入變量var name = "Bob", time = "today";`Hello ${name}, how are you ${time}?`  // Hello Bob, how are you today?

ES6 中引進的一種新型的字符串字面量語法 - 模板字符串。書面上來解釋,模板字符串是一種能在字符串文本中內嵌表示式的字符串字面量。簡單來講,就是增加了變量功能的字符串。

先來看一下以前我們對字符串的使用:

/** * Before ES6 字符串拼接 */var name = '丁香醫生';var desc = '丁香醫生是面向大眾的科普性健康類網站';var html = function(name, desc){  var tpl = '公司名:' + name + '/n'+      '簡介:'+ desc;  return tpl;}

而現在:

var html = `公司名:${name}  簡介:${desc}`;

很簡潔吧。

引一段 MDN 對于模板字符串的定義:

模板字符串使用反引號 () 來代替普通字符串中的用雙引號和單引號。模板字符串可以包含特定語法(${expression})的占位符。占位符中的表達式和周圍的文本會一起傳遞給一個默認函數,該函數負責將所有的部分連接起來。

而占位符${},可以是任意的 js 表達式(函數或者運算),甚至是另一個模板字符串,會將其計算的結果作為字符串輸出。如果模板中需要使用$,{等字符串,則需要進行轉義。

看個例子就明白了。

var x = 1;var y = 2;`${ x } + ${ y } = ${ x + y}` // "1 + 2 = 3"

不同于普通字符串,模板字符串還可以多行書寫,模板字符串中所有的空格,新行,縮進都會原樣的輸出在生成的字符串中。

而單純的模板字符串還存在著很多的局限性。如:

  1. 不能自動轉義特殊的字符串。(這樣很容易引起注入攻擊)
  2. 不能很好的和國際化庫配合(即不會格式化特定語言的數字,日期,文字等)
  3. 沒有內建循環語法,(甚至連條件語句都不支持, 只可以使用模板套構的方法)

標簽模板(tagged template)

為此,引出了標簽模板的概念。標簽模板則是在反引號前面引入一個標簽(tag)。該標簽是一個函數,用于處于定制化模板字符串后返回值。就拿上面對特殊字符串舉例。

/** * HTML 標簽轉義 * @param {Array.<DOMString>} templateData 字符串類型的tokens * @param {...} ..vals 表達式占位符的運算結果tokens *  */function SaferHTML(templateData) { var s = templateData[0]; for (var i = 1; i < arguments.length; i++) {  var arg = String(arguments[i]);  // Escape special characters in the substitution.  s += arg.replace(/&/g, "&")      .replace(/</g, "<")      .replace(/>/g, ">");  // Don't escape special characters in the template.  s += templateData[i]; } return s;}// 調用var html = SaferHTML`<p>這是關于字符串模板的介紹</p>`;

標簽函數會接收多個參數。

  1. 第一個參數是包含了字符串字面量(即那些沒有變量替換的值)的數組
  2. 后面的參數是已經替換后的變量值

改一下例子1

var name = '丁香醫生';var desc = '丁香醫生是面向大眾的科普性健康類網站';tag`公司名:${name}簡介:${desc}`

tag 的參數則分別為 ['公司名:','簡介:'], '丁香醫生', '丁香醫生是面向大眾的科普性健康類網站'。

有了此類方法,就大大的增加了控制的權利。如上面說的國際化庫甚至循環語句。

瀏覽器兼容性

  1. 服務器端, io.js 支持
  2. 瀏覽器端, FF34+ , chrome 41+
  3. 移動端 IOS 8, Android 4.4
  4. IE Tech Preview

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩激情视频| 欧美最猛性xxxxx亚洲精品| 欧洲成人在线观看| 青青久久av北条麻妃黑人| 黑人巨大精品欧美一区二区| 久久成人免费视频| 亚洲视频视频在线| 欧美日韩国产限制| 中文字幕一精品亚洲无线一区| 亚洲人成电影网站色www| 不卡av电影院| 日韩av网址在线| 97在线观看视频| 国产精品成人一区二区| 日本在线观看天堂男亚洲| 国产精品日韩在线播放| 亚洲精品视频免费在线观看| 庆余年2免费日韩剧观看大牛| 91久久精品久久国产性色也91| 不卡在线观看电视剧完整版| 91国语精品自产拍在线观看性色| 成人免费视频在线观看超级碰| 日本精品视频在线| 日韩欧美亚洲范冰冰与中字| 亚洲国产精品va在线看黑人动漫| 国语自产精品视频在线看抢先版图片| 国产91久久婷婷一区二区| 日韩精品视频在线| 综合国产在线视频| 黄色成人在线免费| 欧美精品一二区| 国产精品久久久久久av福利软件| 亚洲a∨日韩av高清在线观看| 国产一区二区三区在线观看视频| 一区二区三区精品99久久| 国产成人91久久精品| 国产一区二区三区视频免费| 欧美日韩精品国产| 国产在线观看一区二区三区| 色久欧美在线视频观看| 欧美日韩色婷婷| 成人免费观看49www在线观看| 国产精品精品视频一区二区三区| 欧美日韩精品国产| 日韩电影中文字幕在线| 欧美电影免费在线观看| 国模精品一区二区三区色天香| 久久视频中文字幕| 亚洲尤物视频网| 国产一区二区日韩精品欧美精品| 国产精品黄视频| 午夜精品久久久99热福利| 国产精品美女www爽爽爽视频| 国产精品免费福利| 中文字幕日韩在线播放| 欧美福利视频网站| 中文字幕日韩av电影| 亚洲欧美激情精品一区二区| 亚洲一区av在线播放| 久久97久久97精品免视看| 国产91免费看片| 国产精品第二页| 免费91麻豆精品国产自产在线观看| 美女啪啪无遮挡免费久久网站| 一本色道久久88综合亚洲精品ⅰ| 欧美一级大片在线免费观看| 91社区国产高清| 国产精品自产拍高潮在线观看| 亚洲人成欧美中文字幕| 自拍偷拍亚洲一区| 亚洲欧美制服中文字幕| 久久久久久久一区二区三区| 国产丝袜一区视频在线观看| 日本成人黄色片| 亚洲午夜性刺激影院| 亚洲第五色综合网| 亚洲最大的成人网| 国产成人精品一区二区三区| 97视频在线观看视频免费视频| 国产精品99久久久久久人| 国产精品伦子伦免费视频| 日韩www在线| 日韩黄在线观看| 国产视频精品一区二区三区| 狠狠躁夜夜躁人人爽超碰91| 欧洲永久精品大片ww免费漫画| 黑人精品xxx一区| 亚洲综合在线小说| 在线观看91久久久久久| 国产精品夜色7777狼人| 日本欧美爱爱爱| 黄色成人在线免费| 久久成人精品一区二区三区| 久久免费观看视频| 91精品国产九九九久久久亚洲| 久久69精品久久久久久久电影好| 国产亚洲精品久久久久久777| 国产日韩在线亚洲字幕中文| 精品自在线视频| 奇米4444一区二区三区| 精品偷拍一区二区三区在线看| 精品小视频在线| 国内久久久精品| 欧美成人四级hd版| 色婷婷亚洲mv天堂mv在影片| 伊人男人综合视频网| 日韩av电影手机在线观看| 日韩欧美中文字幕在线播放| 亚洲第一在线视频| 国产一区二区三区日韩欧美| 日韩av网站导航| 久久免费国产精品1| 亚洲毛片在线观看.| 国产成人一区二区三区小说| 久久久免费观看| 午夜精品一区二区三区在线视频| 精品高清美女精品国产区| 久久久久久亚洲精品| 精品一区二区亚洲| 色午夜这里只有精品| 久久艹在线视频| 91在线中文字幕| 亚洲欧美日韩直播| 欧美在线xxx| 国产成人极品视频| 一区二区在线视频| 欧美精品激情在线观看| 青青久久av北条麻妃黑人| 成人日韩在线电影| 最近2019中文字幕mv免费看| 精品国内产的精品视频在线观看| 久久免费视频这里只有精品| 亚洲视频精品在线| 日韩美女主播视频| 午夜精品一区二区三区av| 一区二区三区视频免费在线观看| 中文字幕亚洲无线码a| 亚洲人成啪啪网站| 热99精品里视频精品| 日韩精品中文字幕久久臀| 欧美日韩福利电影| 91精品国产色综合久久不卡98口| 视频在线一区二区| 一区二区三区四区视频| 亚洲精品一区av在线播放| 91麻豆国产精品| 91精品国产综合久久久久久蜜臀| 精品日本高清在线播放| 午夜免费日韩视频| 国产精品久久一| 久久久亚洲精品视频| 欧美成人精品h版在线观看| 欧美性资源免费| 97香蕉超级碰碰久久免费软件| 热门国产精品亚洲第一区在线| 亚洲国产成人在线视频| 最近中文字幕mv在线一区二区三区四区| 亚洲精品videossex少妇| 中文字幕亚洲欧美日韩高清| 欧美中文字幕在线观看| 日韩欧美在线免费观看| 久久国内精品一国内精品| 免费成人高清视频| 91九色国产社区在线观看|