HOWTO · JavaScript

在 JavaScript 中獲取使用者輸入

你如何在 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 例項在執行下一行之前等待輸入。