「JS」字符串拼接结合三目表达式问题

问题描述

有这么一段代码

    let name = 'XP.C'
    let output = 'Hello ' + name ? name + ', how are you?' : ''
    console.log(output)

我们期望的是打印:Hello XP.C, how are you?
然而打印出来的却是:XP.C, how are you?
Hello不见了!!

原因

在JS中,字符串连接符号+的优先级高于三目表达式

let output = 'Hello ' + name ? name + ', how are you?' : ''

这里将?前面的 'Hello ' + name作为一个整体识别为三目表达式的判断条件了

解决方法

将三目表达式用括号括起来,提高优先级

    let output = 'Hello ' + (name ? name + ', how are you?' : '')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容