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