在 JavaScript 中获取用户输入

本文将帮助你了解如何在 JavaScript 中获取用户输入。

有两种方法可以在 JavaScript 中获取用户输入,具体取决于你是要从浏览器还是 NodeJS 输入。本指南将帮助你学习两者。

从浏览器控制台获取用户输入

要要求来自浏览器的用户输入,你必须使用浏览器提供的 prompt() 方法。该方法允许你接受用户输入作为字符串并将其存储在变量中,如下所示:

const input = prompt();

此方法还接受一个字符串作为附加信息,以了解应用程序需要什么输入。

例如,提示输入用户名的以下代码如下所示:

const input = prompt("What's your name?");
alert(`Your name is ${input}`);

alert() 方法显示结果。你可以根据你的要求将行文本设置为问题或提示。

从 NodeJS 控制台获取用户输入

要接受来自 NodeJS 控制台的用户输入,你必须使用提供的 readline 模块。

你可以从模块中使用以下命令,例如 require(),如下所示:

const readline = require("readline");

然后你需要实例化附加到输入流的接口。使用 readline.createInterface() 方法创建接口并将输入和输出参数作为对象参数传递。

编写输入和输出需要将输入写入 process.stdin 并输出到 process.stdout

这是创建 readline 接口的示例。

const readline = require("readline");

const ql = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

必须在上面代码中分配给 q1 变量的接口实例上调用 question() 方法以请求用户输入。

question() 方法有两个参数。

  • 你想问用户的字符串问题。
  • 收到响应并将响应传递给函数时要执行的回调函数

你可以跳过参数对象并将回调函数作为第二个参数传递。

最后,你可以通过在回调函数中调用 q1.close() 方法来关闭 q1 接口。

arr.js

const readline = require("readline");

const q1 = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

q1.question("Where do you live? ", function (answer) {
  console.log(`Oh, so you live in ${answer}`);
  console.log("Interface Closed");
  q1.close();
});

使用 prompt-sync 模块从 NodeJS 获取用户输入

首先,你需要使用 NPM 或 Yarn 安装 prompt-sync 模块,如下所示:

npm install prompt-sync
or
yarn add prompt-sync

然后,你需要 require() 到 prompt-sync 模块。

看看下面的代码。

pm.js

const prompt = require("prompt-sync")();
const input = prompt("Where do you live? ");

console.log(`Oh, so you live in ${input}`);

因为此方法是同步的,所以 Node 实例在执行下一行之前等待输入。