javascript - 如何处理模板文字中缺少的嵌入表达式
问题描述
我想知道在模板文字中使用表达式的最佳方法是什么。下面的代码工作正常
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 未定义
有没有办法定义一个默认值或其他东西,所以它不会引发错误?
解决方案
你永远不应该留下未声明的变量。而是使用一个对象,如果您需要动态道具,请在其上查找属性:
const context = { val1: "hello" };
// context.val2 = "world";
var template = `${context.val1} ${context.val2}!`
这将导致Hello undefined!
,如果您想要其他内容,请使用||
运算符:
var template = `${context.val1} ${context.val2 || "world"}!`;
推荐阅读
- list - 在最后一个元素处将列表一分为二,给出最后一个元素和一个剩余列表
- php - 在 docx 文件中上传错误,但能够以相同的代码上传 pdf
- laravel - 使用 laravel header() 方法发送 CSRF 令牌
- asp.net - 在 JMeter 中,在 Asp.net Web 应用程序中执行负载测试时,获取登录帖子请求的“对象已移至此处”响应
- php - PHP 从多个表中选择数据会引发错误
- ms-word - MS Word中行尾的通配符?
- php - 从多个表中选择列的总和并按 id 分组
- python - 带有嵌入式 if 语句的 For 循环以更新数据帧
- php - 调用 php 页面来创建新图像会一遍又一遍地生成相同的图像
- sql - Delphi sql:处理字段名称中的空格字符