该园用来记录个人的学习内容,有些杂乱,谅解~嘿嘿~

Chloe

自学前端的小菜鸟一枚呀~
记录学习的知识

(2)字符串插值

模板字面量最常用的一个特性是支持字符串插值,也就是可以在一个连续定义中插入一个或多个值。

  • 技术上讲,模板字面量不是字符串,而是一种特殊的JavaScript句法表达式,只不过求值后得到的是字符串。模板字面量在定义时立即求值并转换为字符串实例,任何插入的变量也会从它们最接近的作用域中取值。

字符串插值通过在${}中使用一个JavaScript表达式实现:

let value = 5;
let exponent = 'second';
//以前,字符串插值是这样实现的:
let interpolatedString = value + ' to the ' + exponent + ' power is ' + (value * value);
console.log(interpolatedString);

//现在,可以用模板字面量这样实现:
let interpolatedTemplateLiteral = `${ value } to the ${ exponent } power is ${ value * value } `
console.log(interpolatedTemplateLiteral);

运行结果如图:

所有插入的值都会使用toString()强制转型为字符串,而且任何JavaScript表达式都可以用于插值。嵌套的模板字符串无须转义:

console.log(`Hello, ${ `World` }! `); //Hello, World!

将表达式转为字符串时会调用toString():

let foo = { toString: () => 'world' };
console.log(`Hello, ${foo}! `);   //Hello, World! 

在插值表达式中可以调用函数和方法:

function capitalize(word) {
    return `${word[0].toUpperCase()}${word.slice(1)}`;
}
console.log(`${capitalize('hello')}, ${capitalize('world')}! `); //Hello, World! 

此外,模板也可以插入自己之前的值:

let value = '';
function append() {
    value = `${value}abc`;
    console.log(value);
}
append();//abc
append();//abcabc
append();//abcabcabc

参考资料:JavaScript高级程序设计(第4版)

posted @   Chloe56  阅读(170)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示