ES6之模版字符串
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之模版字符串的更多相关文章
- es6中的模版字符串
目录 字符串拼接 includes() startsWith() endsWith() padStart() es6中的模版字符串替代了原有的字符串拼接功能. 字符串拼接 es5方式 传统的字符串拼接 ...
- ES6 模版字符串及常用的es6扩展方法
1.ES6 模版字符串es6 模版字符串主要用于简化字符串的拼接 <script type="text/javascript"> let obj={name:'rdb' ...
- es6语法之模版字符串
//es6语法之`${}`以及vue语法 `${ }` (模版字符串)const name = '小缘' const age = 14 console.info(`大家好,我叫${name},今年${ ...
- ES6里关于字符串的拓展
一.子串识别 自从 JS 引入了 indexOf() 方法,开发者们就使用它来识别字符串是否存在于其它字符串中.ES6 包含了以下三个方法来满足这类需求: 1.includes():该方法在给定文本存 ...
- ES6学习历程(字符串的扩展)
字符串的扩展 在看这一节的时候前半部分写的都是关于unicode的内容,我个人感觉这部分在实际的开发中用的很少,所以不打算在做记录,等届时用到再有针对性的看,所以就将在ES6里面关于字符串操作的一些新 ...
- [ES6系列-05]字符串相关操作更方便
[原创] 码路工人 Coder-Power 大家好,这里是码路工人有力量,我是码路工人,你们是力量. github-pages 博客园cnblogs 今天的内容是,关于 ES6 JavaScript ...
- 重学ES系列之模版字符串
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ES6箭头函数及模版字符串
var f = v => v; 等同于: var f = function(v) { return v; }; 箭头函数可以与变量解构结合使用: const full = ({ first, l ...
- ES6模版字符串
传统的 JavaScript 语言,输出模板通常是这样写的(下面使用了 jQuery 的方法). $('#result').append( 'There are <b>' + basket ...
随机推荐
- sql server 事务处理
事物处理 事务是SQL Server中的单个逻辑单元,一个事务内的所有SQL语句作为一个整体执行,要么全部执行,要么都不执行. 事务有4个属性,称为ACID(原子性.一致性.隔离性和持久性) ...
- [HDOJ5442]Favorite Donut(最大表示法)
嗯……就是最小表示法改一下…… 这题就是把S串当作两个判断同构的串,然后就搞出最大的表示了 然后在反向再做一次 O(n)求最大表示,O(n)判断正反谁大
- Nginx的配置文件
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...
- java多态实现原理
众所周知,多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定.C++ 和 Java 作为当前最为流行的两种面向对象编程语言,其内部对于多态的支持 ...
- java虚拟机和Dalvik虚拟机的区别
java虚拟机和Dalvik虚拟机的区别: java虚拟机Dalvik虚拟机 java虚拟机基于栈. 基于栈的机器必须使用指令来载入和操作栈上数据,所需指令更多更多dalvik虚拟机是基于寄存器的 j ...
- extjs基础 使用图标字体来美化按钮)
下载 Font Awesome 1.拷贝css 和 fonts 到build同级目录 2.需要在index.html中引入css文件 3.在main.js文件中添加 initComponent : f ...
- iOS开发,音效的播放简单实现以及音效播放的简单封装
一.音效的播放简单实现 二.音效播放的封装 -- 封装思路:将生成的SystemSoundID存放到字典中,每次播放的时候从字典中取出对应的SystemSoundID,没有的话再创建 头文件中定义类方 ...
- 堆 poj 2442
t组数据 n m 给 n*m的矩阵 从每行拿出一个数 可有n^m个组合 求前n小的输出 维护前n小的数组 #include<stdio.h> #include<string.h> ...
- mysql-函数if多值多结果判断
if语句 案例:同样统计男女生人数,语句如下: ,)) 男生数,,)) 女生数, ,,)) pass1,,,)) pass0, ,,)) state1,,,)) state0 FROM sch GRO ...
- node.js-概念
官方网站:http://nodejs.cn/ 1.Node 是一个服务器端 JavaScript 解释器,可是真的以为JavaScript不错的同学学习Node就能轻松拿下,那么你就错了,总结:水深不 ...