const a = +(readLine())
console.log(a)给出错误
const a = +(readLine())
^
ReferenceError: readLine is not defined怎么修呢?在readLine()函数之前+符号的目的是什么?
发布于 2020-05-07 07:24:41
你错过了
const readLine = require('readline');基本上,readLine是不会从盒子里出来的。在使用模块之前,您需要导入它。如果将该行添加到脚本的顶部,它将消除读行错误。
+基本上是将您读取的行转换为一个数字。使用它的原因是,默认情况下,当您读取行时,它是一个字符串,+告诉nodejs解释器使用它作为整数。整数是JavaScript的基本类型之一。如果您不需要它是一个数字,那么您可以删除+。
发布于 2020-05-07 07:25:45
+意味着转换为一个数值。ReferenceError意味着您尚未定义readLine函数。确保您没有输入错误,或者您没有忘记导入相应的模块。
发布于 2020-05-07 07:42:22
这里您缺少要导入的readline模块。下面是示例,如何获取用户输入,以及如何处理输入。
取数字coma separated和求和。
更多信息: https://nodejs.org/api/readline.html
和函数:
const sum = (...numbers) => numbers.reduce((s, i) => s+=i,0)
console.log(sum(1, 2)) // 3
console.log(sum(0, 5)) // 5
console.log(sum(-1, 6, 1)) // 6
+加法是将字符串转换为数字。还可以使用Number类进行转换。
字符串到数字:
const num = Number("6")
console.log(num == (+"6")) // true样本:
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const sum = (...numbers) => numbers.reduce((s, i) => s+=i,0)
const readNumbers = () => {
return new Promise((r) => {
rl.question("Please enter you numbers(coma separated): ", (answer) => {
const numbers = answer.split(",").map((x) => +x) // + to convert string to number
r(sum(...numbers)); // sum all number
rl.close();
});
});
};
readNumbers().then((sum) => {
console.log(`Sum: ${sum}`);
});https://stackoverflow.com/questions/61652032
复制相似问题