javascript - 字符串文字中的三元

标签 javascript ecmascript-6 template-literals

一直在尝试在模板字符串中添加条件。我做不到。我有两个字符串 t1 和 t2,当 t2 未定义或为空时只显示 t1,当 t2 存在时将 t2 附加到括号内和 t1

let t1= "hey";
let t2 = "there";
//need the output something like hey(there) when there t2 is present. when it is null or undefined or empty just show hey 

//Have tried the below but it is not working
console.log(`${t2} ${t1} ? ${t1}(${t2}): ${t1}`)

最佳答案

三元应在 ${} 表达式内部完成,如下所示:

let t1 = "hey";
let t2 = "there";
console.log(`${t1}${t2 ? `(${t2})` : ''}`);

以上代码解释如下:

  1. 由于您已经指定无论您是否定义了 t2 都应该指定前缀“hey”,因此无需将其包含在三元表达式。
  2. 代码的下一部分是内联的三元运算符,用于检查 t2 是否为 truthy .

    • 如果为真,则执行三元运算符的第一部分。换句话说,三元运算符将返回 (${t2})。由于这是另一个模板文字,因此将通过将 t2 变量替换到模板表达式中来对其进行评估。
    • 如果不为真,则执行三元运算符的第二部分,这是一个空字符串。

请注意,您可以在模板文字中包含模板文字。查看Template Literals documentation在 MDN 上获取更多信息。

关于javascript - 字符串文字中的三元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59425120/

相关文章:

reactjs - 如何使用 React 和 Webpack 设置 Babel 6 stage 0

javascript - 在 ES6 中从父类调用子方法

javascript - 模板文字中的数组映射在项目之间呈现额外的逗号

javascript - 在javascript中调用动态函数

javascript - <a>标签属性引用

javascript - 谷歌浏览器扩展程序: Alert when Modal/popup closed

javascript - 变换内置扩展似乎不起作用

javascript - 使用模板文字转换表达式

javascript - 有没有办法在 Javascript 中重用模板文字?

javascript - 在 joint.js 中读取 JSON?