[英]Can a synchronous input be done in JavaScript?
我對將JavaScript用作學生的入門語言的可能性很感興趣。 對我來說,缺少的部分是能夠提供與其他語言中可用的input()命令等效的阻塞功能。
使用僅限控制台的JavaScript版本(例如SpiderMonkey )將是一個解決方案。 SpiderMonkey具有readline()命令。 但是我認為學生會對Web瀏覽器中運行的代碼更感興趣。 如果學生可以與朋友分享他們經典的“猜數字介於1到10之間”游戲的版本,那就太好了。
JavaScript window.prompt()命令也可以使用,但是它彈出一個完全獨立的窗口的事實並不理想。 我想要一個以相同方式工作的文檔內輸入字段。 有這樣的解決方案嗎?
唯一的prompt()
是阻塞輸入法。 我不完全知道為什么需要使其阻塞,但是也許您可以使用jQuery阻塞插件來實現阻塞(至少是UI)?
我認為您不會找到一種很好的方法來做到這一點,而且我不確定您應該嘗試一下。 我認為這是編程中非常基礎的課程,您希望學生獲得可以完成某件事的感覺。 在那種情況下,我將為他們提供html代碼,其中包含輸入字段,按鈕和已經掛接到函數的onclick處理程序。
學生將很快學會添加輸入字段和按鈕。 僅僅因為您和我學會了在純文本環境中編程,並不意味着今天的學生應該這樣做。
您使用輸入文本和按鈕。 當按下按鈕時,獲取並處理文本,並清潔輸入文本以用於新用途。
另外,您可以考慮使用http://jsfiddle.net/
在網絡瀏覽器中,可以使用prompt
。 它是非常老式的(例如alert
),並且(幾乎完全是)同步運行。 所以:
var str;
str = prompt("Enter some text: ", "");
console.log("You entered '" + str + "'");
str = prompt("Enter some more text: ", "");
console.log("You entered '" + str + "'");
相反,盡管如此,我認為我可能建議讓學生習慣使用回調,並提供一些實用程序代碼(或僅使用一些預構建的東西)。 他們越早習慣它,就越好,而且沒有那么復雜。 例如,上述的異步版本可以很容易地成為:
asynchronousPrompt("Enter some text: ", "", function(text) {
console.log("You entered '" + text + "'");
asynchronousPrompt("Enter some more text: ", "", function(text) {
console.log("You entered '" + text + "'");
});
});
JavaScript中的同步執行為使用JavaScript執行同步操作提供了不錯的編寫和示例代碼。
NodeJ將為您提供解決方案嗎? 它支持REPL afaik。 它還具有STDIO實現
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.