• ベストアンサー

javascriptでの入力待ち方法

こんにちは C++ではcinによって入力待ちをしますが、 JavaScriptでは " " のように、空白のカッコによって「ここに入れるための文字を入れてね」ということになるのですか? よろしければ回答お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hue2011
  • ベストアンサー率38% (2801/7249)
回答No.1

そんなことはないでしょう。 javascriptで入力待ちなんてあり得ません。 javascriptは実行するだけの処理です。 入力エリアはHTMLで画面上にあります。inputというタグで部品になっています。 そして、そのinputのなかに onKeyPressやonKeyDownというようなイベントが発生したときに実行するjavascriptを指定するのです。 こういうのをイベントドリブンというのです。

その他の回答 (4)

noname#212058
noname#212058
回答No.5

回答No.4 です。 > ブラウザ上で動かすためのものです。 > しかし、Node.jsでHTTPサーバをつくりました。 「ブラウザ上で動かすもの」と「Node.js」の両方が成立することはありえません。 両者とも使用する言語こそ javascript で同じですが、それをを動かしているエンジン は別物です。(ブラウザでは動いて、Node.jsでは動かない機能や、その逆のケースが 存在する、ということです) 「ブラウザ上で動かすもの」と「Node.js」は似て非なるものである、ということを 認識しておかないと、おかしなことになりますよ。 > アドバイスから、クライアントからはリクエストや送信するなどをして、サーバは > 常に受動態でいさせるということですね そうです。 例外として、『デバッグ実行の場合』にはリアルタイムに実行中のプロセスのデータを 変更したいがありますが、これは IDE (統合開発環境) などのデバッガを利用するほうが 賢い選択でしょう。

question_april
質問者

お礼

回答ありがとうございます ブラウザで動かすメモ帳で書くかコマンドで書くかですか? すこし難しいです そして、クライアントとサーバの行動が少しわかりました

noname#212058
noname#212058
回答No.4

質問者さんがいう javascript は「ブラウザ上で動くもの」でしょうか? 「Windows Scripting Host」のことでしょうか? 「Node.js」のことでしょうか? 一般的には javascript と言えば「ブラウザ上で動くもの」と解釈されることが大多数です。質問内容はきちんと条件を書かないと回答者さんに誤解を与えますよ。 C++ の cin は標準入力ですね。 ・ブラウザ上で動く javascript に標準入力はありません。入力ダイアログなり、DOM  上の入力タグを使います。 ・ Windows Scripting Host では WScript オブジェクトを使って標準入力を使うことが  できます。  http://www.atmarkit.co.jp/ait/articles/0707/26/news128.html ・Node.js には標準入力のようなものはありません。そもそもサーバサイドのプログ  ラムが「入力待ちになる」など、ナンセンスです。  通常、サーバサイドのプログラムの動作設定は「設定ファイル」などを使うか、  クライアントからの設定変更を受け付けるような機能を作り込みます。

question_april
質問者

お礼

回答ありがとうございます ブラウザ上で動かすためのものです。 しかし、Node.jsでHTTPサーバをつくりました。 アドバイスから、クライアントからはリクエストや送信するなどをして、サーバは常に受動態でいさせるということですね

回答No.3

C++で標準入力や標準出力を使って使ったコマンドラインツールと 一般的にはブラウザ上で動作するJavaScriptでは振る舞いが 根本的に異なります。 前者は コマンドラインからの標準入力待ち→(キー入力+エンター)→処理→標準出力/標準エラー→.... とできますが、 後者は、ブラウザ上から発生するイベント駆動 (あるオブジェクトがclickされたとか、フォームにキー入力されたとか,Ajaxの応答があったとか) で動きますので、C++のcin(コマンドラインからの標準入力待ち)ということ自体ができません。 但し、 HTML上の<input type="text" .....> のテキスト入力フォームの値が変更された イベントでJavaScriptの任意の関数を動作させるということは可能ですので、 これのことですかね? なお、JavaScriptという言語をつかいながらも、ブラウザ上で動作させるのではなく コマンドラインツールを作るということも 実行環境を整えることで可能ではあるので、 そのような特殊な環境上でのことなら、 まずはどのような環境化で "JavsScript"を動作させているかを 明示してから質問されるのがよいでしょう。

question_april
質問者

お礼

回答ありがとうございます 確かに思い返すとC++はコマンド上での作業で、JavaScritはコード上でのやり取りでないですよね なのでとても難しいです 回答者様の答えも、私の知識では難しいです ただ、これからわかるように頑張ります ありがとうございました

回答No.2

JavaScript本体にはI/Oに関するライブラリの規定がないので、入力待ちはできませんね。 ただ、ブラウザと一緒にそういう追加のライブラリがあるのでそれを活用します。 実際にはテキストボックスに入力がされるときにonKeydownなどのイベントを拾って変数に代入するか、window.promptメソッドを使ったりします。 window.prompt("ユーザー名を入力してください", ""); ここからはエスパー回答になってしまいますが、あなたの方で見たサンプルコードでは var input = ""; // 文字列の代入 という感じで、一旦空の文字列を代入を行った後に、実際の文字列代入を行うコードがあるのでしょう。

question_april
質問者

お礼

回答ありがとうございます

question_april
質問者

補足

回答ありがとうございます はい、そういうように""のままのものがあるのですが、後からそこに文字列を変数に代入してさらにそれを""に代入するというものがあるのですか?

関連するQ&A

専門家に質問してみよう