ES6之模版字符串的具体使用
本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了ES6之模版字符串的具体使用,主要是根据代码来分析模板字符串的相关内容,下面一起来看一下,希望对大家有帮助。
【相关推荐:javascript视频教程、web前端】
最近在项目中使用了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=88; var y=100; console.log(`x=${++x},y=${x+y}`);
结果如下所示:
7.更强大的是:模版字符串还可以调用函数:
function string(){ return "zzw likes es6!"; } console.log(`你想说什么?嗯,${string()}`);
结果如下所示:
另外,如果函数的结果不是字符串,那么,将按照一般的规则转化为字符串:
function string(){ return 666; } 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"));
结果如下:
【相关推荐:javascript视频教程、web前端】
以上是ES6之模版字符串的具体使用的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题











async是es7的。async和await是ES7中新增内容,是对于异步操作的解决方案;async/await可以说是co模块和生成器函数的语法糖,用更加清晰的语义解决js异步代码。async顾名思义是“异步”的意思,async用于声明一个函数是异步的;async和await有一个严格规定,两者都离不开对方,且await只能写在async函数中。

在ES6中,可以利用数组对象的reverse()方法来实现数组反转,该方法用于颠倒数组中元素的顺序,将最后一个元素放在第一位,而第一个元素放在最后,语法“array.reverse()”。reverse()方法会修改原始数组,如果不想修改需要配合扩展运算符“...”使用,语法“[...array].reverse()”。

为了浏览器兼容。ES6作为JS的新规范,加入了很多新的语法和API,但现代浏览器对ES6新特性支持度不高,所以需将ES6代码转为ES5代码。在微信web开发者工具中,会默认使用babel将开发者ES6语法代码转换为三端都能很好支持的ES5的代码,帮助开发者解决环境不同所带来的开发问题;只需要在项目中配置勾选好“ES6转ES5”选项即可。

步骤:1、将两个数组分别转为set类型,语法“newA=new Set(a);newB=new Set(b);”;2、利用has()和filter()求差集,语法“new Set([...newA].filter(x =>!newB.has(x)))”,差集元素会被包含在一个set集合中返回;3、利用Array.from将集合转为数组类型,语法“Array.from(集合)”。

在es6中,暂时性死区是一个语法错误,是指let和const命令使区块形成封闭的作用域。在代码块内,使用let/const命令声明变量之前,该变量都是不可用的,在变量声明之前属于该变量的“死区”;这在语法上,称为“暂时性死区”。ES6规定暂时性死区和let、const语句不出现变量提升,主要是为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为。

不是,require是CommonJS规范的模块化语法;而es6规范的模块化语法是import。require是运行时加载,import是编译时加载;require可以写在代码的任意位置,import只能写在文件的最顶端且不可在条件语句或函数作用域中使用;require运行时才引入模块的属性所以性能相对较低,import编译时引入模块的属性所所以性能稍高。

map是有序的。ES6中的map类型是一种储存着许多键值对的有序列表,其中的键名和对应的值支持所有数据类型;键名的等价性判断是通过调用“Objext.is()”方法来实现的,所以数字5与字符串“5”会被判定为两种类型,可以分别作为两种独立的键出现在程序中。
