我遇到过这段代码,其中if语句包含没有&&
和/或||
运算符的参数。
if (event.target.scrollTop > 0 !== isViewScrolled) {
//do something
}
这怎么可能有效?括号中包含的逻辑是什么?
答案 0 :(得分:3)
(event.target.scrollTop > 0
返回一个bool,因此javascript只检查此bool是否等于isViewScrolled
答案 1 :(得分:1)
检查运算符优先级https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
根据以上'use strict';
angular.module('myApp', [
'ngMaterial'
])
.config([function () {
}])
.controller('mainCtrl', ['$scope', function ($scope, $mdSidenav) {
$scope.soKai = 'soKai';
$scope.currentTitle = 'Maths';
$scope.appName = 'KaiAcademics';
$scope.openSideNav = function(componentId) {
$mdSidenav(componentId).toggle();
}
}])
;
(大于)优先级高于>
(不等式)所以
!=
相当于
event.target.scrollTop > 0 !== isViewScrolled
虽然两者都是等价的,但最好包括评价顺序不明确的括号。