如何在javascript中获得控制台输入?

cam*_*ace 57 javascript console input spidermonkey

我目前正在使用spidermonkey来运行我的JavaScript代码.我想知道是否有一个从控制台获取输入的函数,类似于Python的工作方式:

var = raw_input()  
Run Code Online (Sandbox Code Playgroud)

或者在C++中:

std::cin >> var;
Run Code Online (Sandbox Code Playgroud)

我环顾四周,到目前为止我发现的是如何使用prompt()和confirm()函数从浏览器获取输入.

Moo*_*Goo 40

好旧的readline();

请参阅MDN文档:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Introduction_to_the_JavaScript_shell#readline.28.29

  • 这可以与其他Javascript引擎(如V8?)一起使用 (3认同)
  • 我在使用node.js时似乎无法使用..任何想法? (2认同)

Key*_*van 15

正如您所提到的,prompt适用于一直回到 IE 的浏览器:

var answer = prompt('question', 'defaultAnswer');
Run Code Online (Sandbox Code Playgroud)

IE 中的提示

对于 Node.js > v7.6,您可以使用console-read-write,它是低级readline模块的包装器:

const io = require('console-read-write');

async function main() {
  // Simple readline scenario
  io.write('I will echo whatever you write!');
  io.write(await io.read());

  // Simple question scenario
  io.write(`hello ${await io.ask('Who are you?')}!`);

  // Since you are not blocking the IO, you can go wild with while loops!
  let saidHi = false;
  while (!saidHi) {
    io.write('Say hi or I will repeat...');
    saidHi = await io.read() === 'hi';
  }

  io.write('Thanks! Now you may leave.');
}

main();
// I will echo whatever you write!
// > ok
// ok
// Who are you? someone
// hello someone!
// Say hi or I will repeat...
// > no
// Say hi or I will repeat...
// > ok
// Say hi or I will repeat...
// > hi
// Thanks! Now you may leave.
Run Code Online (Sandbox Code Playgroud)

披露我是控制台读写的作者和维护者

对于 SpiderMonkey,readline就像@MooGoo@Zaz建议的那样简单。


Zaz*_*Zaz 14

在纯JavaScript中,只需response = readline()在打印提示后使用.

在Node.js中,您需要使用readline模块:const readline = require('readline')

  • `var x = readline(); ^ TypeError:在文件顶部添加require后,readline不是函数` (5认同)
  • 看起来现在所做的事情有所不同:https://nodejs.org/api/readline.html (2认同)
  • readline 在节点中的工作方式不同。你需要这样的东西: const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout }) readline.question("what's your name? ", name => { console.log (`你好${name}`); readline.close(); }); (2认同)