最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - +(readLine()) gives ReferenceError - Stack Overflow

programmeradmin6浏览0评论
const a = +(readLine())
console.log(a)

gives an error

 const a = +(readLine())
           ^

ReferenceError: readLine is not defined

How to fix it ? What is the purpose of + sign before the readLine() function

const a = +(readLine())
console.log(a)

gives an error

 const a = +(readLine())
           ^

ReferenceError: readLine is not defined

How to fix it ? What is the purpose of + sign before the readLine() function

Share Improve this question asked May 7, 2020 at 7:22 Mounika BathinaMounika Bathina 1434 silver badges14 bronze badges 4
  • 1 The + before is for converting it to a number, but that's not the reason of your error. – Radu Diță Commented May 7, 2020 at 7:25
  • 1 +(...) means type convert to int. But your error says that there is no function named readLine – Justinas Commented May 7, 2020 at 7:25
  • 2 const readLine = require("readline") – xdeepakv Commented May 7, 2020 at 7:32
  • what is readLine here ?? – xdeepakv Commented May 7, 2020 at 7:34
Add a ment  | 

3 Answers 3

Reset to default 5

You are missing following

const readLine = require('readline');

Basically, readLine doesnt e out of the box. You need to import the module before using it. If you add that line on the top of your script, it should get rid of readline error.

+ is basically converting the line which you read to a number. Reason for using it is because, by default when you read line it is a string and + tells the nodejs interpreter to use it as integer. Integer is one of the primitive types of JavaScript. If you don't need it to be a number, then you can remove +.

+ means conversion to a numeric value. ReferenceError means that you haven't defined readLine function. Ensure that you haven't made a typo or you haven't forgotten to import the corresponding module.

Here you are missing readline module to import. Below is the sample, how you can take user input, and work on the input.

Take numbers a separated and sum.

More info: https://nodejs/api/readline.html

Sum function:

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

+ Plus is to convert string to number. You can also use Number class to convert

String to Number:

const num = Number("6")
console.log(num == (+"6")) // true

Sample:

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(a 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}`);
});
发布评论

评论列表(0)

  1. 暂无评论