插值型字符串字面量

本文介绍了模板字面量(插值型字符串字面量)及其在JavaScript中的使用,包括变量嵌入、表达式计算、标签型模板、String.raw方法及原始字符串展示。讲解了其作用域和换行保留特性,并探讨了ES6中的相关新特性如函数引用和原始字符串标签。
摘要由CSDN通过智能技术生成
模板字面量(插值型字符串字面量)
模板表达式
  1. 反引号括起来的是不同的字符串,在反引号内部出现的${...}有点类似于IIFE,允许嵌入基本的字符串插值表达式,之后这些表达式自动地被解析和求值,

    var name = "Kyle";
    var greeting = `Hello ${name}!`;
    
    console.log( greeting );            // "Hello Kyle!"
    console.log( typeof greeting );
    
  2. 任何合法的表达式都被允许出现在${..}内部,包括函数调用,内联函数表达式调用,甚至是另一个插值型字符串字面量。${..}会将内部转换为字符串,默认调用toString()方法

  3. 反引号字符串字面量的作用域在其被调用时所在的块级/局部/全局作用域中,反引号中所有的空格都是字符串的一部分

  4. 在插值型字符串字面量中的换行将会被保留在字符串值中,也就是说在反引号中换行,字符串就会被分割成多行

标签型模板字面量

标签型模板字面量类似于不需要使用(...)的函数引用,这样js中就可以支持使用

foo`Everything is ${desc}!`; 
//这样会给foo函数传递两个参数,"Everything is"和"${desc}"执行后的参数

ES6内建函数`String.raw,可以被用作模板字面量标签,这个函数能够将字符串的原始版本显示出来

console.log(String.raw`123/n456`) //打印输出123/n456
console.log(`123/n456`)
//123
//456
String.raw方法
String.raw(callSite, ...substitutions)//
String.raw`templateString`
String.raw({ raw: 'test' }, 0, 1, 2); // 't0e1s2t'
// 注意这个测试, 传入一个 string, 和一个类似数组的对象
// 下面这个函数和 `foo${2 + 3}bar${'Java' + 'Script'}baz` 是相等的.
String.raw({
  raw: ['foo', 'bar', 'baz']
}, 2 + 3, 'Java' + 'Script');// 'foo5barJavaScriptbaz',这种情况换行不会被保持

该方法会忽略转义符,输出模板字符串的原始字符,但仍然允许换行,此方法会输出字符串String

.trim()方法

方法可以消除模板字符串中的换行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值