JavaScript增量运算符为';不行吗?
因此,出于某种原因,当我在这段代码中使用增量运算符时,它不起作用。我已经验证了我的变量是数字。。不知道发生了什么事JavaScript增量运算符为';不行吗?,javascript,Javascript,因此,出于某种原因,当我在这段代码中使用增量运算符时,它不起作用。我已经验证了我的变量是数字。。不知道发生了什么事 var fs = require('fs') , bt = require('buffertools') var start = 0; fs.readFile(process.argv[2], function(err, data) { console.log(data); while (bt.indexOf(data, '\n', start)) { va
var fs = require('fs')
, bt = require('buffertools')
var start = 0;
fs.readFile(process.argv[2], function(err, data) {
console.log(data);
while (bt.indexOf(data, '\n', start)) {
var nl = bt.indexOf(data, '\n', start); // nl is 40
console.log(start, nl); // 0, 40
console.log(data.slice(start, nl)); // works great!
start = nl++; // reset the offset past that last character..
console.log(start, typeof start); // start == 40? the heck? 'number'
process.exit(); // testing
//console.log(nl, start); 40, 40
}
});
编辑------
而解决方案
"use strict";
var fs = require('fs')
, bt = require('buffertools');
fs.readFile(process.argv[2], function(err, data) {
var offset = 0;
while (true) {
var nl = bt.indexOf(data, '\n', offset);
if (nl === -1) break;
console.log(data.slice(offset, nl));
offset = ++nl;
}
console.log(data.slice(offset));
});
谢谢 您要查找的是
++nl
而不是nl++
,num++
递增数字并返回旧值
是-正如您所看到的,它的描述是“returnoldvalue”num++
是-正如您所看到的,它的描述是“returnnewvalue”++num
由于您以后根本不会更改
nl
,因此可以这样编写:
start = nl + 1;
哪个更清楚。您要查找的是
++nl
而不是nl++
,num++
递增数字并返回旧值
是-正如您所看到的,它的描述是“returnoldvalue”num++
是-正如您所看到的,它的描述是“returnnewvalue”++num
由于您以后根本不会更改
nl
,因此可以这样编写:
start = nl + 1;
哪个更清楚。
nl++
。它所做的是递增nl
并返回原始值。尝试start=++nl
++nl
将递增nl
并返回新值。nl++
。它所做的是递增nl
并返回原始值。尝试start=++nl
++nl
将递增nl
并返回新值。有趣。我以前从来没有遇到过,谢谢。将在12分钟内接受。很有趣。我以前从来没有遇到过,谢谢。将在12分钟内接受。