猿问

javascript if else shorthand and strings

var x = 'x' 

x-'m'||console.log('True 1') 

// logs True, should be false


var x = '2' 

x-2||console.log('True 2') 

// logs True


var x = '3' 

x-2||console.log('True 3') 

// logs False


为什么如果其他速记在使用字符串时总是返回 true?如何修复?


我从这里学到了这一点


慕斯709654
浏览 76回答 1
1回答

LEATH

如果 前面的表达式返回表达式,则执行 。这发生在产生NaN的第一个表达式(这是falsy)中:||falsyconsole.log()'x' - 'm'console.log('x' - 'm')对于返回 0 的第二个表达式(这是 falsy):'2' - 2console.log('2' - 2)您不会为第三个表达式执行,因为它返回 1(这是真实的):console.log()'3' - 2console.log('3' - 2)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答