• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascript var)

「var」についてのエラー原因とは?

このQ&Aのポイント
  • ソースコードの2行目の頭に「var」をつけるかつけないかでコンソールエラーになるか、ならないかが変わる
  • 「var」をつけるとエラーになる理由が不明
  • 「var」は変数の宣言に使用されるキーワードであり、正しく使わないとエラーが発生する

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

  • ベストアンサー
回答No.2

>「var」をつけると何故かエラーになるのですが、その理由が分かる方いらっしゃいますか? var msg = "your name " + name; は「変数を宣言する文」になりますが、変数の宣言をする時、初期値に「式」は書けません。 初期値は「値」しか書く事ができません。 なので、varを付けると「そんな初期化はできん」とエラーになります。 一方、 function hello(name){ msg = "your name " + name; return msg; } var greet = hello("Tom"); console.log(msg); と書いた場合「msgの定義が省略されている」と解釈され var msg; function hello(name){ msg = "your name " + name; return msg; } var greet = hello("Tom"); console.log(msg); と同じ意味になり msg = "your name " + name; は「代入文」として扱われます。しかも、変数msgは「グローバル変数」になります。 代入文ですから、エラーにはなりません。

その他の回答 (2)

回答No.3

スコープ関連では?と思います。 http://qiita.com/redamoon/items/4646a909ab234a64735c function内のみで有効な変数なのか、外でも有効なのか。 ”use strict”宣言して厳格モードで作ればよりエラーの原因が分かるかと思います。 といっても厳格すぎて今のままで動かないとは思いますが、ちゃんと動くようにすればより良いと思いますス。

  • t_hirai
  • ベストアンサー率28% (222/788)
回答No.1

エラーが出ている場所は、「console.log(msg);」ってことでいいですか?

関連するQ&A

専門家に質問してみよう