首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >+(readLine())给出ReferenceError

+(readLine())给出ReferenceError
EN

Stack Overflow用户
提问于 2020-05-07 07:22:37
回答 3查看 4.6K关注 0票数 0
代码语言:javascript
复制
const a = +(readLine())
console.log(a)

给出错误

代码语言:javascript
复制
 const a = +(readLine())
           ^

ReferenceError: readLine is not defined

怎么修呢?在readLine()函数之前+符号的目的是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-07 07:24:41

你错过了

代码语言:javascript
复制
const readLine = require('readline');

基本上,readLine是不会从盒子里出来的。在使用模块之前,您需要导入它。如果将该行添加到脚本的顶部,它将消除读行错误。

+基本上是将您读取的行转换为一个数字。使用它的原因是,默认情况下,当您读取行时,它是一个字符串,+告诉nodejs解释器使用它作为整数。整数是JavaScript的基本类型之一。如果您不需要它是一个数字,那么您可以删除+

票数 4
EN

Stack Overflow用户

发布于 2020-05-07 07:25:45

+意味着转换为一个数值。ReferenceError意味着您尚未定义readLine函数。确保您没有输入错误,或者您没有忘记导入相应的模块。

票数 1
EN

Stack Overflow用户

发布于 2020-05-07 07:42:22

这里您缺少要导入的readline模块。下面是示例,如何获取用户输入,以及如何处理输入。

取数字coma separated和求和。

更多信息: https://nodejs.org/api/readline.html

和函数:

代码语言:javascript
复制
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类进行转换。

字符串到数字:

代码语言:javascript
复制
const num = Number("6")
console.log(num == (+"6")) // true

样本:

代码语言:javascript
复制
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}`);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61652032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档