如何在JavaScript中获取用户输入而不提示

ntjbwcob  于 2022-12-25  发布在  Java
关注(0)|答案(4)|浏览(150)

我正在寻找一种不用prompt()就能在JS中获得用户输入的方法;我很清楚这个问题以前有人问过,但是我能找到的所有其他问题都包括使用html,而我正在寻找一种方法,在纯JavaScript中,在一个程序中,而不是作为网页的一部分来做这件事。

fhity93d

fhity93d1#

JavaScript没有原生的获取输入的方法,存在的每个方法都是宿主环境提供的扩展(prompt就是一个例子)
不同的主机环境有不同的方法。你已经为浏览器确定了一个,DOM是另一个。NodeJS有Readline API(还有其他的)。还有很多其他的环境(WSH,JXA,等等)。

pengsaosao

pengsaosao2#

我不知道在提示符中用什么特定的命令把它取出来,但是也许你可以使用alert();

2ledvvac

2ledvvac3#

除了浏览器提供的功能外,JS没有其他“功能”。它是为浏览器设计的,除非你想使用Java,但那是另一回事。所以prompt可能是使用JS的最佳方式,除非你想使用confirm,它会给予你一个布尔表达式的等价物。

var answer = confirm("Yes or no?")

这会给予你一个正确或错误的答案。

huus2vyu

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);
    })
}

相关问题