ES6之模版字符串

  最近在项目中使用了ES6的模版字符串,在这里加以总结。

  1.之前我们也可以使用JavaScript输出模版字符串,通常是下面这样的:

        $("#result").append(
"He is <b>"+person.name+"</b>"+"and we wish to know his"+person.age+".That is all"
);

  但是我们可以看到:这样的传统做法需要使用大量的“”(双引号)和 + 来拼接才能得到我们需要的模版。但是这样是十分不方便的。

 

 于是ES6中提供了模版字符串,用`(反引号)标识,用${}将变量括起来。上面的例子可以用模版字符串写成下面这样:

        $("#result").append(
`He is <b>${person.name}</b>and we wish to know his${person.age}.that is all`
);

  这样的做法就简洁了很多,我们不需要再使用大量的""和+来拼接字符串和变量。

 2. 当然,模版字符串可以引入变量,不使用变量也是可以的。如下所示:

	` I am a man.`

	` No matter what you do,
I trust you.`

  

  3. 我们还可以先定义变量,然后在模版字符串中嵌入变量:

	var name="zzw";
` ${name},no matter what you do,
I trust you.`

  

 4.显然,由于反引号是模版字符串的标识,如果我们需要在字符串中使用反引号,我们就需要对其进行转义,如下所示:

    `No matter\` what you do,
I trust you.`

  5.注意:如果使用模版字符串表示多行字符串,所有的空格和缩进都会被保存在输出中!!

	 console.log( `No matter\` what you do,
I trust you.`);

  输出结果如下:

 6. 在${}中的大括号里可以放入任意的JavaScript表达式,还可以进行运算,以及引用对象属性。

  

    var x=;
var y=;
console.log(`x=${++x},y=${x+y}`);

结果如下所示:

  7.更强大的是:模版字符串还可以调用函数:

	function string(){
return "zzw likes es6!";
}
console.log(`你想说什么?
嗯,${string()}`);

  结果如下所示:

  另外,如果函数的结果不是字符串,那么,将按照一般的规则转化为字符串:

    function string(){
return ;
}
console.log(`你想说什么?
嗯,${string()}`);

  结果如下所示:

  在这里,实际上数字666被转化成了字符串666.

  8.如果在${}中的变量时没有命名的,那么会报错:

    console.log(`你想说什么? 嗯,${string()}`);

  在上面这句代码中,string()函数没有声明,于是报错:

  9.其实,我们还可以在${}中输入一个字符串,知识结果仍旧会返回一个字符串:

    console.log(`你想说什么?
嗯,${"其实我不是变量~"}`);

  结果如下所示:

  

  10.如果希望引用模版字符串本身,可以像下面这样写:

  

    let str="return"+"`Hello! ${name}`";
let func=new Function("name",str);
console.log(func("zzw"));

  结果如下:

 没有伞的孩子必须努力奔跑!

ES6之模版字符串的更多相关文章

  1. es6中的模版字符串

    目录 字符串拼接 includes() startsWith() endsWith() padStart() es6中的模版字符串替代了原有的字符串拼接功能. 字符串拼接 es5方式 传统的字符串拼接 ...

  2. ES6 模版字符串及常用的es6扩展方法

    1.ES6 模版字符串es6 模版字符串主要用于简化字符串的拼接 <script type="text/javascript"> let obj={name:'rdb' ...

  3. es6语法之模版字符串

    //es6语法之`${}`以及vue语法 `${ }` (模版字符串)const name = '小缘' const age = 14 console.info(`大家好,我叫${name},今年${ ...

  4. ES6里关于字符串的拓展

    一.子串识别 自从 JS 引入了 indexOf() 方法,开发者们就使用它来识别字符串是否存在于其它字符串中.ES6 包含了以下三个方法来满足这类需求: 1.includes():该方法在给定文本存 ...

  5. ES6学习历程(字符串的扩展)

    字符串的扩展 在看这一节的时候前半部分写的都是关于unicode的内容,我个人感觉这部分在实际的开发中用的很少,所以不打算在做记录,等届时用到再有针对性的看,所以就将在ES6里面关于字符串操作的一些新 ...

  6. [ES6系列-05]字符串相关操作更方便

    [原创] 码路工人 Coder-Power 大家好,这里是码路工人有力量,我是码路工人,你们是力量. github-pages 博客园cnblogs 今天的内容是,关于 ES6 JavaScript ...

  7. 重学ES系列之模版字符串

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. ES6箭头函数及模版字符串

    var f = v => v; 等同于: var f = function(v) { return v; }; 箭头函数可以与变量解构结合使用: const full = ({ first, l ...

  9. ES6模版字符串

    传统的 JavaScript 语言,输出模板通常是这样写的(下面使用了 jQuery 的方法). $('#result').append( 'There are <b>' + basket ...

随机推荐

  1. (二十三)原型模式详解(clone方法源码的简单剖析)

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 原型模式算是JAVA中最简单 ...

  2. Common Issues Which Cause Roles to Recycle

    This section lists some of the common causes of deployment problems, and offers troubleshooting tips ...

  3. Android之Activity跳转

    简述 如果把每个activity看成一个页面的话,那么activity之间的跳转和页面的之间的跳转基本上是一样的.首先需要监听一个事件,当这个事件发生的时候,就进行跳转.html中有个<a sr ...

  4. hdu2642二维树状数组单点更新+区间查询

    http://acm.hdu.edu.cn/showproblem.php?pid=2642 题目大意:一个星空,二维的.上面有1000*1000的格点,每个格点上有星星在闪烁.一开始时星星全部暗淡着 ...

  5. Android 强制竖屏

    一般android 显示内容都有两种实现方式,java代码中实现,xml布局中实现(或者权限管理页面) 直接上代码: java方法 setRequestedOrientation(ActivityIn ...

  6. Maven的内置变量

    Maven内置变量说明: ${basedir} 项目根目录(即pom.xml文件所在目录) ${project.build.directory} 构建目录,缺省为target目录 ${project. ...

  7. iOS开发小技巧--即时通讯项目:消息发送框(UITextView)高度的变化; 以及UITextView光标复位的小技巧

    1.即时通讯项目中输入框(UITextView)跟随输入文字的增多,高度变化的实现 最主要的方法就是监听UITextView的文字变化的方法- (void)textViewDidChange:(UIT ...

  8. Asp.Net MVC<二> : IIS/asp.net管道

    MVC是Asp.net的设计思想,而IIS/asp.net是它的技术平台.理解ASP.NET的前提是对ASP.NET管道式设计的深刻认识.而ASP.NET Web应用大都是寄宿于IIS上的. IIS ...

  9. JAVA程序员一定知道的优秀第三方库(2016版)

    几乎每个程序员都知道要“避免重复发明轮子”的道理——尽可能使用那些优秀的第三方框架或库,但当真正进入开发时,我却经常发现他们有时并不知道那些轮子在哪里.最近,我在业余时间带几个年轻的程序员一起做了一个 ...

  10. OkHttp:Java 平台上的新一代 HTTP 客户端

    OkHttp 简介 OkHttp 库的设计和实现的首要目标是高效.这也是选择 OkHttp 的重要理由之一.OkHttp 提供了对最新的 HTTP 协议版本 HTTP/2 和 SPDY 的支持,这使得 ...