我正在尝试比较两个负数,但比较失败。在这种特定情况下,getLeftPercent()
是负数 (-14),但在比较时,执行操作 B。从逻辑上讲,(-14) 小于 (-10),因此应该执行动作 A。
如果我将右侧比较操作数 (-10) 更改为正数(例如 1),则执行操作 A。是否有一些我忽略的 JavaScript 怪癖(它正盯着我的脸)?我可以发布完整的代码,但实际上并没有更多。
$(function() {
// the statement in question
if (parseInt(getLeftPercent(), 10) < -10) {
// do action A
// this is just a debug statement
$('#posbanner').html('element position is less than negative 10');
} else {
// do action B
// this is just a debug statement
$('#posbanner').html('element position is greater than or equal to negative 10');
}
});
// element left position on page
function getLeftPercent() {
var leftStr = $('#sidebar').css('left'),
pxPos = leftStr.indexOf('px'),
leftVal = leftStr.substr(0, pxPos),
leftPercent = (leftVal / $(window).width() * 100).toString(),
dotPos = leftPercent.indexOf('.'),
leftPercentStr = dotPos == -1 ? leftPercent : leftPercent.substr(0, dotPos);
return leftPercentStr;
};