为何三目运算符这样用输出结果是“something

var val ='GTJA';
console.log("value is" + (val=="GTJA")?'something':'nothing');

因为+号优先级比三目运算符高。
你这样是先计算 "value is" + (val=="GTJA") 结果为 "value istrue",再用这个结果作为三目运算符的判断条件
value is 被加到条件中作判断了,自然不会输出了
要加()改成

console.log("value is" + ((val=="GTJA")?'something':'nothing'));

val=="GTJA"相等,返回真,判断为真所以输出something,为假就输出nothing

因为val等于GTJA