我正在寻找一种不用prompt()就能在JS中获得用户输入的方法;我很清楚这个问题以前有人问过,但是我能找到的所有其他问题都包括使用html,而我正在寻找一种方法,在纯JavaScript中,在一个程序中,而不是作为网页的一部分来做这件事。
fhity93d1#
JavaScript没有原生的获取输入的方法,存在的每个方法都是宿主环境提供的扩展(prompt就是一个例子)不同的主机环境有不同的方法。你已经为浏览器确定了一个,DOM是另一个。NodeJS有Readline API(还有其他的)。还有很多其他的环境(WSH,JXA,等等)。
prompt
pengsaosao2#
我不知道在提示符中用什么特定的命令把它取出来,但是也许你可以使用alert();
2ledvvac3#
除了浏览器提供的功能外,JS没有其他“功能”。它是为浏览器设计的,除非你想使用Java,但那是另一回事。所以prompt可能是使用JS的最佳方式,除非你想使用confirm,它会给予你一个布尔表达式的等价物。
var answer = confirm("Yes or no?")
这会给予你一个正确或错误的答案。
huus2vyu4#
如果你正在练习/参加任何竞争性的编码,下面是用javascript获取用户输入的代码。
Input: 4 1 2 3 4 Output: { n:4, arr:[1,2,3,4] }
function runProgram(input){ let line=input.split('\n') let n= Number(line[0]); let arr = line[1].split(' ').map(x => +x); yourFunc(n,arr); } function yourFunc(n,arr){ console.log({n,arr}) } if(process.env.USER === ""){ runProgram('') } else{ process.stdin.resume(); process.stdin.setEncoding('ascii'); let read=""; process.stdin.on('data',function(inp){ read+=inp }) process.stdin.on('end',function(inp){ read=read.replace(/\n$/,""); read=read.replace(/\n$/,""); runProgram(read); }); process.on("SIGINT",function(){ read=read.replace(/\n$/,""); runProgram(read); process.exit(0); }) }
4条答案
按热度按时间fhity93d1#
JavaScript没有原生的获取输入的方法,存在的每个方法都是宿主环境提供的扩展(
prompt
就是一个例子)不同的主机环境有不同的方法。你已经为浏览器确定了一个,DOM是另一个。NodeJS有Readline API(还有其他的)。还有很多其他的环境(WSH,JXA,等等)。
pengsaosao2#
我不知道在提示符中用什么特定的命令把它取出来,但是也许你可以使用alert();
2ledvvac3#
除了浏览器提供的功能外,JS没有其他“功能”。它是为浏览器设计的,除非你想使用Java,但那是另一回事。所以prompt可能是使用JS的最佳方式,除非你想使用confirm,它会给予你一个布尔表达式的等价物。
这会给予你一个正确或错误的答案。
huus2vyu4#
如果你正在练习/参加任何竞争性的编码,下面是用javascript获取用户输入的代码。