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

时间:2010-06-25 19:09:13

标签: javascript input console spidermonkey

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

var = raw_input()  

或者在C ++中:

std::cin >> var;

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

4 个答案:

答案 0 :(得分:35)

答案 1 :(得分:11)

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

在Node.js中,您需要使用http://artoolkit.org/const readline = require('readline')

答案 2 :(得分:1)

正如您提到的,prompt可以一直用于IE的浏览器:

var answer = prompt('question', 'defaultAnswer');

prompt in 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.

对于SpiderMonkey,请按照@MooGoo@Zaz的建议使用简单的readline

答案 3 :(得分:0)

您可以尝试使用类似process.argv的方法,即如果您正在使用node.js来运行程序。
console.log(process.argv) =>将打印包含以下内容的数组

[                                                                                                                                                                                          
  '/usr/bin/node',                                                                                                                                                                         
  '/home/user/path/filename.js',                                                                                                                                            
  'your_input'                                                                                                                                                                                   
]

您可以通过数组索引获取用户提供的输入,即console.log(process.argv[3]),这应该为您提供可以存储的输入。


示例:

var somevariable = process.argv[3]; // input one
var somevariable2 = process.argv[4]; // input two

console.log(somevariable);
console.log(somevariable2);

如果您要构建命令行程序,那么npm软件包yargs会很有帮助。