我正在使用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按钮时,我希望进入如果声明,我跳过它!
答案 0 :(得分:4)
||
的第二个操作数是:
$scope.overseasTravelTask.RegisteredKeeperAddressLine1.toLowerCase().indexOf("zenith")
...这将产生一个数字:子字符串的索引,如果找不到则为-1
。因此,当强制转换为布尔值时,对于所有情况(-1,23,42等),它将是true
,而不是在索引0
处找到子字符串时,在这种情况下它将是false
。
你可能想要!== -1
。