能否将三元运算符用于console.log?报错原因咨询
问题原因与解决方法
你写的代码报错,核心原因是JavaScript不允许单独存在无意义的表达式语句。
错误提示含义
Expected an assignment or function call and instead saw an expression 翻译成中文是:预期是赋值操作或函数调用,但却看到了一个孤立的表达式。
简单说就是你写的三元运算表达式没有被任何操作使用(既没赋值给变量,也没作为参数传递),JS引擎认为这是一段没有实际作用的代码,所以抛出错误。
你的代码问题分析
你写的console.log("hello") ? bool : "";逻辑本身就有问题:
console.log()的返回值永远是undefined,用它作为三元运算的判断条件没有意义(undefined会被判定为假,所以结果永远是"")- 即便逻辑合理,单独的三元表达式没有被使用,也会触发这个错误。
正确写法分两种情况
如果想根据
bool的值决定是否打印hello
把判断条件放在三元运算符最前面,并且确保语句有实际作用:// 三元写法 bool ? console.log("hello") : undefined; // 更推荐的if写法,可读性更强 if (bool) { console.log("hello"); }如果想利用
console.log的结果做运算(虽然实际意义不大)
必须把运算结果赋值给变量或者用于其他操作:const result = console.log("hello") ? bool : "";
内容的提问来源于stack exchange,提问作者user20293258
相关产品推荐
相关产品推荐

