ES6折腾记-模板字符串
2016-10-27 01:17
393 查看
前言
模板字符串是个好东西,请看我细细道来;模板字符串
模板字符串[template string]是ES6引进来的,他有点类似我们平时使用的模板引擎【jade,handlebar这些】,但是又不是【功能相对鸡肋些,无法条件循环遍历什么的】,下面我来列举下它的优缺点优点:
支持变量
支持多行输入
缺点:
没有内建循环语法,条件语句不支持, 只可以使用模板套构的方法
不能自动转义特殊的字符串。— 需要手动转义或者写一个转义函数
不能很好的和国际化库配合(即不会格式化特定语言的数字,日期,文字等)
如何使用
注意点:``反引号来包含内容
${}来识别储存的内容片段【占位符–支持条件表达式】
标签 + 反引号内容会触发高级函数的定义
tag``— 触发模板字符串函数定义
String.raw``– 取得字符串模板内的原始数据【原始数据就是包裹换行符\n这些,,原原本本的输出[就是输出之前进行了一次转义,转转的还是依次会保留的–切记!!!]】
//用法1: 多行字符串输出,允许内部调用模板占位符 `我是卖报的 今天又没卖出报纸 坑啊` /* "我是卖报的 今天又没卖出报纸 坑啊" */ //---------------------------------------------- //用法2:变量插入,有了这个就不用像ES5之前只能用+来拼接字符串了【据第三方测试,字符串拼接的速度比这个ES6模板字符串的快。。。ES6本来就是语法糖!!!】 var a = 2; var b =3 ; var c = a * 9 ; console.log(`得到的结果值是:${a * b + c % a }*2`) //得到的结果值是:6*2 //--------------------------------------------- //用法3:模板字符串高级运用[值位置调整,值的二次运算] //需要先定义一个函数【arg1为字符串内容(arr-嵌套数组),arg2为变量[arr]】 //函数名+模板字符串执行,,具体如下 function test(strings,...values){ console.log('strings是:'+strings+'\n'); console.log('value是:'+values); return values[0]+strings + values[values.length-1] } var return_value = test`得到的结果值是:${a * b} \n,我分割,\tfasdfjl ${ c % a } *2` //return_value的结果是: /* strings是:得到的结果值是:, ,我分割, fasdfjl , *2 value是:6,0 */ String.raw`得到的结果值是:${a * b} \n,我分割,\tfasdfjl ${ c % a } *2` //值为: /* "得到的结果值是:6 \n,我分割,\tfasdfjl 0 *2" */
函数高级形式内,两个传入返回的均为数组;
第一个参数值为嵌套数组:eg :[a,b,c,raw obj arr] : 最后一个下标值为字符串的原始数据构成的数组对象;
String.raw对象是对所有字符转义一次才输出【已经手动转义的不再处理】
第二个参数是变量构成的数组
函数内部可以进行下标操作及其他功能操作,最后的值为
return返回的值
总结
总体来说,模板字符串的出现了,让我们的字符串拼接写的更加优美了;相当简易实用;但是这货并不是万能的,有部分unicode编码字符会造成编译报错相关文章推荐
- ES6折腾记-模板字符串
- ES6 反单引号 字符串模板
- 利用ES6中的模板字符串轻松实现多行和字符串值的插入
- ES6-字符串扩展-模板编译
- ES6模板字符串编译示例
- ES6的全新特性:模板字符串
- es6 模板字符串
- es6新语法系列,查找字符串,模板字符串
- ES6-字符串扩展-模板字符串的限制
- ES6模板字符串
- ES6新增了一种模板字符串
- es6 javascript的``模板字符串
- 3、ES6 === string 模板字符串
- ES6字符串模板,剩余参数,默认参数功能与用法示例
- 【微信小程序+ES6新特性应用】字符串模板:美元符号$+大括号{}变量的写法
- ES6中的模板字符串和新XSS Payload
- ES6学习随笔--字符串模板、解构赋值、对象、循环、函数、Promise、Generrator
- ES6学习教程之模板字符串详解
- ES6之模板字符串(Template String)
- ECMA2015(ES6)简单入门-1-let块-恒量const-解构-字符串模板