轨道
/
JavaScript
JavaScript
/
练习
/
定制标牌
定制标牌

定制标牌

学习练习

简介

在 JavaScript 中,_模板字符串_可以在字符串中嵌入表达式,也被称为字符串插值。 这一功能扩展了内置的String全局对象的功能。

在 JavaScript 中,你可以用反引号包裹文本来创建模板字符串。 模板字符串不仅允许文本包含换行和其他特殊字符,还可以嵌入变量和其他表达式。

const num1 = 1;
const num2 = 2;

`Adding ${num1} and ${num2} gives ${num1 + num2}.`;
// => Adding 1 and 2 gives 3.

在上面的例子中,反引号(``)用于表示模板字符串。${...}是用于替换的占位符。 任何非字符串类型都会被_隐式_转换为字符串。 这一话题在类型转换概念中有所介绍。 各种类型的表达式都可以用于模板字符串。

const track = 'JavaScript';

`This track on exercism.org is ${track.toUpperCase()}.`;
// => This track on exercism.org is JAVASCRIPT.

当你需要让字符串跨多行排版时:

`This is an example of using template
strings to accomplish multiple
lines`;

借助可用的替换能力,你还可以在过程中引入逻辑,来决定输出的字符串应该是什么。

一个例子就是嵌入三元运算符。 这个运算符是编写if/else语句的简写形式。 语法是condition ? consequent-expression : alternative-expression。 如果条件为真值,就会返回冒号左侧的操作数。 否则,三元表达式的结果就是冒号右侧的操作数。

const grade = 95;

`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.

说明

在本练习中,你将编写代码,帮助一家标牌公司为他们的标牌制作自定义信息。

1. 制作一块活动标牌

实现函数 buildSign(occasion, name),它接受一个字符串作为 occasion 形参,并接受一个存放某人姓名的字符串作为 name 形参。 这两个形参会嵌入到一个模板字符串中,输出标牌上的信息。

buildSign('Birthday', 'Rob');
// => "Happy Birthday Rob!"

2. 制作一块生日标牌

实现函数 buildBirthdaySign(age),它接受一个年龄,并根据年龄决定标牌上信息的一部分。 如果年龄为 50 或更大,标牌会称用户为 mature;否则称其为 young。 确切期望的输出如下所示:

buildBirthdaySign(50);
// => "Happy Birthday! What a mature fellow you are."

buildBirthdaySign(45);
// => "Happy Birthday! What a young fellow you are."

3. 制作一块毕业标牌

实现函数 graduationFor(name, year),它接受一个字符串形参作为姓名,接受一个数字形参作为年份,并使用字符串插值生成标牌上的短语,其中用换行符分隔信息的两行。

graduationFor('Hannah', 2022);
/* => "Congratulations Hannah!
       Class of 2022"
*/

4. 计算标牌的费用

实现函数 costOf(sign, currency),它接受一个存放标牌内容的字符串和一个表示货币的字符串。 标牌的基础价格是给定货币的 20。此外,每个字母花费 2。(空格也计入计算。) 返回的短语包含制作标牌的费用,费用写成小数点后两位,后面跟着货币字符串。

costOf('Happy Birthday Rob!', 'dollars');
// => "Your sign costs 58.00 dollars."
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
JavaScript Exercism

准备好开始 定制标牌 了吗?

注册 Exercism,借助 37 个概念159 个练习 和真人导师指导,学习并掌握 JavaScript,全部免费。