三元运算符在if语句

时间:2017-08-17 07:33:26

标签: javascript if-statement ternary-operator

为什么这个语句导致'typeError:无法读取属性'toString'of undefined'?我认为它注意到und未定义,只是避免它试图从und中创建一个字符串的行。  如果我从“if”语句中删除true ||,则可以正常使用

let und = undefined;

if (true || und ? und.toString() === 'anything' : false) {
    // do something
}

1 个答案:

答案 0 :(得分:0)

这条指令:

true || und ? und.toString() === 'anything' : false

将被视为:

(true || und) ? und.toString() === 'anything' : false

由于OR语句为trueund.toString() === 'anything'将被执行,即使 und { {1}}。

您需要在三元运算符周围加上括号。



undefined