Одна или обе переменные являются строкой вместо числа. Это делает +
выполнение конкатенации строки.
'2' + 2 === '22'; // true
2 + 2 === 4; // true
Другие арифметические операторы / * -
будут выполнять преобразование toNumber
в строке (строках).
'3' * '5' === 15; // true
Быстрый способ преобразования строки в число - использовать унарный оператор +
.
+'2' + 2 === 4; // true
... или с вашими переменными:
+x + +y
Существует способ записи во внешнюю команду: process.createChildProcess
( документация ) возвращает объект с записью
метод. createChildProcess
не так удобен, потому что он не буферизует stdout и stderr, поэтому вам понадобятся обработчики событий для чтения вывода по частям.
var stdout = "", stderr = "";
var child = process.createChildProcess("someCommand");
child.addListener("output", function (data) {
if (data !== null) {
stdout += data;
}
});
child.addListener("error", function (data) {
if (data !== null) {
stderr += data;
}
});
child.addListener("exit", function (code) {
if (code === 0) {
sys.puts(stdout);
}
else {
// error
}
});
child.write("This goes to someCommand's stdin.");