这是我过去30分钟无法弄清楚的事情。
var file = Components.classes["@mozilla.org/file/local;1"].
createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( sPath );
...
if ( file.fileSize < (offsetContent+bytesToRead) )
{
wt.BO.log(file.fileSize + "<" + offsetContent + "+" + bytesToRead);
bytesToRead = file.fileSize - offsetContent;
}
上面的代码显示:“577
最佳答案
加号运算符(+
)用于连接字符串或在JavaScript中添加数字。
由于offsetContent
或bytesToRead
是字符串,因此将两个变量串联在一起:
"50" + "50" = "5050"
"5050" == 5050
--> 577 < 5050
当然是正确的。 修复代码的一些方法:
// Substract bytesToRead from both sides
if ( file.fileSize - bytesToRead < offsetContent )
// Or, Turn the comparison operator, and make the right side negative
if ( file.fileSize >= -bytesToRead - offsetContent )