• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Dateにnewを付与せず(関数として)呼び出した)

Dateにnewを付与せず(関数として)呼び出した場合、なぜ結果がUTCになるのか?

このQ&Aのポイント
  • Dateにnewを付与せず(関数として)呼び出した場合、結果はUTCとなります。これは、Dateオブジェクトが現在の時刻(UTC)で初期化されるためです。
  • この挙動は、MDNやmsdnのリファレンスでも明示されており、GlobalオブジェクトやDateオブジェクトの仕様に記載されています。
  • 具体的なURLは、以下のようになります。Dateオブジェクトにパラメータを渡さなかった場合の初期化に関しては、msdnのリファレンスが参考になります。

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

  • ベストアンサー
noname#177743
noname#177743
回答No.1

既にECMAを見ているようですので、そこに書いてある通りです。 15.9.2 The Date Constructor Called as a Function When Date is called as a function rather than as a constructor, it returns a String representing the current time (UTC). とありますので、関数としてDateを呼び出した場合には、UTCのテキストが返されます。そういう仕様ですので。また、 NOTE The function call Date(…) is not equivalent to the object creation expression new Date(…) with the same arguments. とあるように、Dateコンストラクタを呼び出した場合、new Dateと等価ではないぞ、ということですね。msdnのリファレンスにないのは、よくわかりませんが、msdnではいらないと思ったか見落としたかしたんでしょう、きっと。そのへんは当事者でないと……。 Date関数はどこにあるのでしょうか? ということですが、これはどういう意味なのでしょう。Dateオブジェクトをそのまま呼び出しているのですからその中に処理はありますが(そもそもオブジェクト=関数だし)。そういう意味ではない?

re97
質問者

補足

回答ありがとうございます >そういう意味ではない? ・ECMAのカテゴリーで言うと、Date関数はどこに該当するのでしょうか? ・Dateオブジェクトの中のDate関数? ・もしそうだとしたら、Dateオブジェクト生成しなくても利用できるのでしょうか? ・オブジェクトと言うか、変数自体が分かっていないのですが、 例えば、var = hoge; とする行為は、「ECMA」的に言えばどういうことになるのでしょうか? ・グローバルオブジェクトを生成している? ・それとも、変数だから、オブジェクトとは無関係? ・ECMAのカテゴリーで言うと、変数はどこに該当するのでしょうか?

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

その他の回答 (1)

  • think49
  • ベストアンサー率59% (285/482)
回答No.2

#1の補足を読みました。 ECMAに「Dateオブジェクトの中のDate関数」という区分はありませんし、「グローバルオブジェクト」も「変数」も無関係だと思います。 #1 で chiiba_kun さんが説明されている内容は下記URLにありますので、そこから処理を追うのがベターではないかと。 http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-9_Date_Objects.html#section-15.9.2 http://es5.github.com/#x15.9.2 > ・オブジェクトと言うか、変数自体が分かっていないのですが、 変数はただの入れ物ですので、変数に格納されているか否かは重要ではありません。今回は重要ではないと思うのですが、理解するには下記URLを追っていただくといいかなと。 http://es5.github.com/#x10.4 http://es5.github.com/#x12.2

re97
質問者

お礼

回答ありがとうございましたー

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

関連するQ&A

  • setTimeは、返り値がなぜ不要なのでしょうか?

    ・Dateオブジェクトを見ているのですが、setTimeメソッドが理解できません ・getTimeメソッドだと、「返り値」を受け取れるのに、 setTimeメソッドでは、なぜ「返り値」を受け取れないのでしょうか? ・メソッド名に「set」「get」が付いているので、てっきりセッターゲッターみたいな物だと思ったのですが… ・直接プロパティ値を書き換えるのでしょうか? 参照みたいに ・マニュアルを見たら、「インスタンスを生成した関数を返します。これはデフォルトでは Date コンストラクタです」と書かれているのですが、これはどういう意味なのでしょうか? ・コンストラクタなのに、プロパティ? インスタンスを生成した関数? >このプロパティの値は関数そのものの参照であり、関数の名前を含んだ文字列ではないことに注意してください ・関数そのものの参照って何ですか? ・Dateオブジェクトの実体はどこに存在しているのでしょうか? ▽Date - JavaScript | MDN   https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/Date

  • ActiveXObjectのリファレンス

    皆様のお知恵を拝借させてください。 Webで調べたのですが、まったく情報にたどり着けませんでした。 JscriptのActiveXObjectを使おうと思っています。 そこで、Microsoftのサイトを見たところ↓ http://msdn2.microsoft.com/ja-jp/library/6958xykx(VS.80).aspx まったくもって内容不足でした。 ActiveXObject に関する詳しいリファレンスのようなものは どこを見ればわかるのでしょうか? また、上記サイトでは、Excelのアプリケーションを自動で開いて 自動で値を入力し、自動で保存するということをやってのけていますが、 このようなリファレンスはどこを見ればわかるのでしょうか? またActiveXObjectに引数として渡してあげることのできるものには、 どのようなものがあるのでしょうか。たとえば、PowerPointなんかでも 扱えるのでしょうか。 それと、上記サイトの説明にある「オートメーションオブジェクト」とは 一体なんでしょうか?

  • ShellExecuteってなんで関数?

    ファイルとかを開く時に使うShellExecuteって何故関数なのですか? Sub test() Dim ファイル名 As String ファイル名 = "C:\Test用テキストファイル.txt" CreateObject("Shell.Application").ShellExecute ファイル名 End Sub このようなコードでファイルを開いていますが、関数って戻り値がある場合に使うのですよね? http://msdn.microsoft.com/ja-jp/library/cc422072.aspx をみたらShellExecuteは関数との事でした。 ずっとメソッドだと思ってました。

  • SetBkModeやSetTextColorは…

    3Dゲームのソリューションとは別の(Windows XP以前にも対応する)アプリケーションを作っているときに思った事なのですが GDIで msdnのSelectObjectの解説には (http://msdn.microsoft.com/ja-jp/library/cc410576.aspx) ------------- この関数は、指定されたのと同じタイプで、それまで選択されていたオブジェクトを返します。アプリケーションは新しいオブジェクトを使い終えたら、必ず元の(既定)オブジェクトに置き換えるべきです。 ------------- と書いてあるのですが SetBkModeやSetTextColorについてはそう言った表記がありません。 実際には、これらはReleaseDCやEndPaintの前に初期状態に戻すべきなのでしょうか? 戻さなくても全く問題はないでしょうか?

  • vbのrnd関数で任意の乱数を生成する式について

    任意の乱数を生成する式(下記サイト)で+1をする理由は何ですか? http://msdn.microsoft.com/ja-jp/library/f7s023d2%28v=vs.80%29.aspx +1をしないと正しく算出されないパターンも教えてください。 1~6, -6~1でそれぞれ+1をする・しないのパターンを試しましたが、 正しく算出されないケースが見つかりませんでした。 宜しくお願い致します。

  • GetDIBits関数の使い方について

    いつも丁寧なご回答を頂きありがとうございます。 GetDIBits関数の使い方について質問させて頂きます。 http://msdn.microsoft.com/ja-jp/library/cc428673.aspx 上記サイトを参考にして色々と試してみてWin32APIでは正常に動作したのですが、C#で正常に動作しません。 <Win32API> LPCOLORREF pScanData = NULL; BITMAPINFOHEADER bmpinfo = {0}; pScanData = new COLORREF[ bmp.bmWidth ]; bmpinfo.biSize = sizeof(BITMAPINFOHEADER); bmpinfo.biWidth = bmp.bmWidth; bmpinfo.biHeight = bmp.bmHeight; bmpinfo.biPlanes = 1; bmpinfo.biBitCount = 32; bmpinfo.biCompression = BI_RGB; // 一行分画像データを DIB で取り出す GetDIBits( hdc, hBitmap,1, 1, pScanData, (LPBITMAPINFO)&bmpinfo, DIB_RGB_COLORS ); 特に第5、6引数に何を渡してやればいいのかがわかりません。 以上ご助言よろしくお願いいたします。

  • 【至急】セットしたmovefileコマンドの取消

    はじめまして、助けて下さい。 MoveFileEx関数(マイクロソフトMSDNサイト)<https://msdn.microsoft.com/ja-jp/library/cc429621.aspx>を誤って設定してしまい、 絶対に消してはいけないファイルを削除するコマンドを入れてしまいました。 バックアップを取るにしても、ファイルの容量が大きすぎてバックアップを取れません。 この予約コマンド自体を無効にする方法はないでしょうか。

  • テキストボックスって関数?

    エクセルです。 シートにテキストボックスを置くと、数式バーに a=EMBED("Forms.TextBox.1","") が表示されるのですが、テキストボックスって関数なのでしょうか? 「EMBED」について http://office.microsoft.com/ja-jp/word-help/HP005186147.aspx を読んだのですが、良くわかりませんでした。 「ほかのアプリケーションで作成されたオブジェクトを挿入します。」 と書かれてますが、 テキストボックスは「ほかのアプリケーション」ではないですよね。 それともテキストボックスはアクティブエックスコントロールだから ほかのアプリケーションになるのでしょうか?

  • エクセルでSearch()関数が使えない

    エクセルVBAで標準モジュールに関数を作って その関数の中で  Search()を使うと 関数が定義されてない、というエラーになります Search()関数は基本的な関数であるし Search(",",str)  とか引数の記入違いであれば違うエラーが出ると おもうのですが? WindowXPでExcel2003を使っています あるいは参照関係かとおもったのですが、  この知識がないのでどう直していいかわかりません 念の為、ツール→参照設定をみてみると 次の4つがチェックマークが付いているのですが ・Visual Basic for Application ・Microsoft Excel 11.0 Object library ・OLE Application ・Microsoft Office 11.0 object library

  • "picture.jpg" の "picture" を取りだすには

    お世話になります。 "picture.jpg" のような文字列から 拡張子を省いた値を 取りだすにはどうすれば良いのでしょうか? Java でいう str.lastIndexOf(".") や substr() のような関数はあるのでしょうか? msdn 関数 http://msdn.microsoft.com/ja-jp/library/32s6akha.aspx