我在一个JavaScript繁重的应用程序中工作,我有以下代码:
function displayingNotes() {
if (!($scope.overseasTravelTask.RegisteredKeeperName.toLowerCase()
.indexOf("zenith") > -1 ||
$scope.overseasTravelTask.RegisteredKeeperAddressLine1.toLowerCase()
.indexOf("zenith")
)
)
{
$scope.calloutClass = 'callout-danger';
$scope.calloutMessage = 'We (Zenith) cannot provide this vehicle with the necessary documents.';
$scope.disableNextBtn = true;
}
else
{
$scope.calloutMessage = 'Please ask driver about this.';
}
}
对于if语句,我在Chrome控制台放置一个断点并检查我的逻辑,逻辑看起来是正确的,但是当我单击F10按钮时,我希望进入if语句,而不是跳过它!
||
的第二个操作数是:
$scope.overseasTravelTask.RegisteredKeeperAddressLine1.toLowerCase().indexOf("zenith")
…子字符串的索引,如果没有找到,则为-1
。因此,当强制转换为布尔值时,除了子字符串恰好在索引0
处找到时,它将在所有情况下(- 1,23,42等)都是true
,在这种情况下,它将是false
。
你可能想要一个!== -1
在那里