質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Q&A

解決済

1回答

465閲覧

ChromeのDevtoolsでsnippet実行時の戻り値について

kuniatsu

総合スコア141

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

0グッド

1クリップ

投稿2019/03/28 06:34

ChromeのDevtoolsでsnippetの実行をした際に値が戻ってくる条件を詳しく知りたいです。
どういう理由でconsoleに値が表示されているのでしょうか?


"aiueo"を返す

snippet.js

1"aiueo"

undefinedを返す

snippets.js

1console.log("aiueo");

undefinedを返す

snippets.js

1for(var i=0;i<5;i++){ 2 console.log(i); 3} 4

5を返す

snippets.js

1var i=0; 2while(i<5){ 3 console.log(i); 4 i+=1; 5} 6

5を返す

snippets.js

1var i=0; 2while(i<5){ 3 console.log(i); 4 ++i; 5} 6

4を返す

snippets.js

1var i=0; 2while(i<5){ 3 console.log(i); 4 i++; 5} 6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

あくまで予想ですが、Snippetを実行したときに表示される値は直接コンソールで実行したときに表示されるものと同じだと思われ、それを前提とします。

Javascript while loop return value - Stack Overflow

によると、JavaScript上で戻り値を取得できないwhileループなどのような文にも「戻り値」が設定されていて、JavaScriptのREPL(Devtoolsのコンソールなど)においてはそれを考慮して値が表示されるようです。

基本的に戻り値は「戻り値ありの文の中で最後に実行された文の戻り値」となっているようです。

例えばwhile文については、そのブロック内で最後に実行された戻り値ありの文の表示値がwhile文の表示値になります。

js

1var i=0; 2while(i<5){ 3 console.log(i); 4 ++i; 5}

においては、最後に実行される戻り値ありの文はi==4のときの++i;です。++iは1増えたあとの値が戻り値となるため、5が戻り値となります。逆にi++の場合は1増える前の値が戻り値となるため、4が戻り値となります。

console.log("aiueo")については単にconsole.logが常にundefinedを返す関数のためundefinedが戻り値となっているだけです。

補足
chromeでconsole.log(3)を実行すると以下のようになります。
3のほうは、console.logが直接コンソールに引数の値を表示する機能を持っているから、表示されたものです。
一方で「←」がついているundefinedの方は戻り値を表しています。コンソールで直接コードを実行すると、その戻り値を表示するようになっているため、表示されます。

コンソールでのconsole.log(3)の実行結果

投稿2019/03/29 07:38

karamarimo

総合スコア2551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問