• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:node.jsのシェル上で)

node.jsのシェル上でコンソール上でnodejsを起動してシェルとしてつかった場合、undefinedと出力される原因は何ですか?

このQ&Aのポイント
  • node.jsのシェル上でコンソール上でnodejsを起動してシェルとしてつかった場合、undefinedと出力される場合があります。
  • グローバル変数のスコープの違いが原因です。コンソール上ではthisがグローバルオブジェクトを指し、グローバル変数としてアクセスできますが、JSファイルに記述して実行する場合はthisが異なるオブジェクトを指すため、undefinedとなります。
  • JSファイルに記述して実行する場合は、グローバル変数をthisではなく、グローバルオブジェクトであるglobalオブジェクトに定義する必要があります。そうすることで、undefinedとならずに値が正しく出力されます。

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

  • ベストアンサー
  • q-ue
  • ベストアンサー率75% (12/16)
回答No.3

その動作から考えると、トップレベルがグローバルスコープではなく、ローカルスコープでコードが実行されているようです。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

文字コードはUTF8ですか?

すると、全ての回答が全文表示されます。
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.1

こちらの環境では「グローバル変数」と出ますよ (バージョンv0.9.3) thisが何か確認して見てください あと、thisでグローバルオブジェクトを参照しようとするのは危険です 将来的にnullが返されるよう変更されることになっています(harmony) グローバル属性を参照するには「global」を使ってください

1000vicki
質問者

補足

うーん、だめでした。 thisをglobalとしてもundefinedがでてしましいますね・・・。 nodeのヴァージョンはv0,8,1でした。 v0.9系の開発バージョンじゃないと動きがことなるのでしょうか・・。

すると、全ての回答が全文表示されます。

関連するQ&A