首页 > 语言 > JavaScript > 正文

es6 字符串String的扩展(实例讲解)

2024-05-06 15:13:28
字体:
来源:转载
供稿:网友

新特性:模板字符串

传统字符串

let name = "Jacky";let occupation = "doctor"; //传统字符串拼接let str = "He is "+ name +",he is a "+ occupation;

es6简洁的字符串拼接

let name = "Jacky";let occupation = "doctor";//模板字符串拼接let str = `He is ${name},he is a ${occupation}`;

对比两段拼接的代码,模板字符串使得我们不再需要反复使用双引号(或者单引号)了;而是改用反引号标识符(`),插入变量的时候也不需要再使用加号(+)了,而是把变量放入${ }即可。

使用时要注意

1、可以定义多行字符串

传统的多行字符串写法:

let str = "write once ," + "run anywhere";

模板字符串的写法:

 let str = `write once , run anywhere`;

直接换行即可,但是要注意的是:所有的空格和所进都会被保留在输出中。如果控制台输出字符串str的话,代码上换了行,控制台输出的时候也会换行。

2、${ }中可以放任意的javascript表达式

${ }中可以是运算表达式

var a = 1;var b = 2;var str = `the result is ${a+b}`;//进行加法运算 结果:the result is 3

${ }中可以是对象的属性

var obj = {"a":1,"b":2};var str = `the result is ${obj.a+obj.b}`;//对象obj的属性//结果:the result is 3.

${ }中可以是函数的调用

function fn() {return 3;}var str = `the result is ${ fn() }`;//函数fn的调用,结果:the result is 3

标签模板

这里的模板指的是上面讲的字符串模板,用反引号定义的字符串;而标签,则指的是一个函数,一个专门处理模板字符串的函数。

var name = "张三";var height = 1.8;tagFn`他叫${name},身高${height}米。`;//标签+模板字符串//定义一个函数,作为标签function tagFn(arr,v1,v2){console.log(arr); //结果:[ "他叫",",身高","米。" ]console.log(v1); //结果:张三console.log(v2); //结果:1.8}

以上代码有两处要仔细讲解的,首先是tagFn函数,是我们自定义的一个函数,它有三个参数分别是arr,v1,v2。函数tagFn的调用方式跟以往的不太一样,以往我们使用括号( )表示函数调用执行,这一次我们在函数名后面直接加上一个模板字符串,如下面的代码:

tagFn`他叫${name},身高${height}米。`;

这样就是标签模板,你可以理解为标签函数+模板字符串,这是一种新的语法规范。

接下来我们继续看函数的3个参数,从代码的打印结果我们看到它们运行后对应的结果,arr的值是一个数组:[ "他叫" , ",身高" , "米。" ],而v1的值是变量name的值:“张三”,v2的值是变量height的值:1.8。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选