将bool与1比较是否正确?
在遗留代码中我经常找到:
if (xyz.isCounterActive() == 1)
其中sCounterActive()返回bool。
显然,if ( xyz.isCounterActive() )
已足够,但如果我改变了这一点,我就不知道它可能导致哪些副作用。软件很大,有问题,但客户坚持认为它正在运行。
编译器是VS2008
答案 0 :(得分:1)
在这种情况下,xyz.isCounterActive()
的结果将隐式转换为int
。有许多隐式转换规则,例如可以找到here。
自isCounterActive
引入以来,isCounterActive
的签名可能已更改,而更改后的签名则忘记修改所有$('nav #mobileMenu').on('click', function() {
// Get it from the cookie or data.
if ($.cookie('isToggled') != undefined)
var isToggled = $.cookie('isToggled');
else
var isToggled = $(this).data('isToggled');
if(isToggled) {
$("nav#menu").addClass("mobileMenuActive");
$("nav ul").fadeIn(1000);
$("nav em").fadeOut('fast');
} else {
$("nav#menu").removeClass("mobileMenuActive");
$("nav ul").fadeOut(1000);
$("nav em").fadeIn('fast');
}
$(this).data('isToggled', !isToggled)
$.cookie('isToggled', !isToggled, { expires: 7, path: '/' });
})
次来电。