猿问

关于JS三目运算符问题

在三目运算符中使用字符串连接符为什么在条件改变时结果却不变?

        var notice = "she is "+true? "?":"nt"+" here."

        alert(notice);    // "?"

        var notice = "she is "+false? "?":"nt"+" here."

        alert(notice);    // "?"

但是,去掉三目运算符前的字符串连接符及字符串就恢复正常了

        var notice = false? "?":"nt"+" here."

        alert(notice);    // "nt here."

        var notice = true? "?":"nt"+" here."

        alert(notice);    // "?"

求解?

慕码人2483693
浏览 724回答 1
1回答

慕姐4208626

首先:什么是三目运算符?{1} ? {2} : {3} ;JS引擎首先执行 Boolean({1}) 如果为 True 则返回 {2},False则返回{3}然后:"she is "+true === "she is true" //严格相等所以Boolean("she is "+true) === Boolean("she is true") // 等于 TrueBoolean("she is "+false) === Boolean("she is false") // 也等于 True但是:false? "?":"nt"+" here." 中的false是布尔值.所以Boolean(false) === false所以Boolean(true) === true
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答