编程语言
首页 > 编程语言> > javascript – Mozilla Firefox扩展开发. 577 <100.这怎么可能?

javascript – Mozilla Firefox扩展开发. 577 <100.这怎么可能?

作者:互联网

这是过去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< 50 50”... o.O到底是怎样的577< 100? if语句是真的......似乎无法理解为什么.

解决方法:

plus运算符()用于连接字符串,或用于在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 )

标签:xul,javascript,firefox,firefox-addon
来源: https://codeday.me/bug/20190826/1731326.html