首页 > 解决方案 > 如何处理模板文字中缺少的嵌入表达式

问题描述

我想知道在模板文字中使用表达式的最佳方法是什么。下面的代码工作正常

var val1 = "Hello"
var val2 = "world"

var template = `${val1} ${val2}!`
console.log(template)

但是可以说由于某种原因没有 val2

var val1 = "Hello"


var template = `${val1} ${val2}!`
console.log(template)

在这种情况下,它会给我一个如下所示的错误

var template = ${val1} ${val2}! ^ ReferenceError: val2 未定义

有没有办法定义一个默认值或其他东西,所以它不会引发错误?

标签: javascriptnode.js

解决方案


你永远不应该留下未声明的变量。而是使用一个对象,如果您需要动态道具,请在其上查找属性:

 const context = { val1: "hello" };
 // context.val2 = "world";
 var template = `${context.val1} ${context.val2}!`

这将导致Hello undefined!,如果您想要其他内容,请使用||运算符:

 var template = `${context.val1} ${context.val2 || "world"}!`;

推荐阅读