2015-08-21 47 views
1

鑑於下列標準化日期字符串:新日期(Date.parse(字符串))和新日期(字符串)之間有什麼技術差異?

var dateString = "2010-12-23T23:12:00"; 

我可以使用下面的代碼段中的一個來解析它:

實施例1:

var date = new Date(dateString); 

實施例2:

var date = new Date(Date.parse(dateString)); 

根據this answer,只有當字符串的格式爲YYYY-MM-DDTHH:mm:ss.sssZ時,才能很好地定義日期解析。但是,如果字符串是這種格式,我會想象這兩個例子總是返回完全相同的結果。

從標準日期字符串創建日期對象的這兩種方法之間的技術差異是什麼?它們是否會返回不同的結果?

回答

1

我寫完後不久就找到了這個問題的答案。根據ECMAScript語言規範,對於字符串參數,這兩種方法在符合標準的瀏覽器中將產生相同的結果。

ECMAScript Language Specification

15.9.3.2新的日期(值):

  1. 呼叫ToPrimitive(值)。

  2. 如果Type(結果(1))是字符串,然後轉到步驟5

...

  • 解析結果(1)作爲日期,與解析方法(15.9.4.2)完全一樣;讓V爲該日期的時間值。
  • new Date(string)被調用時,它分析的完全相同的方式字符串作爲Date.parse(string)會。所以通過調用​​我們可以得到與new Date(string)完全相同的結果,但是在額外方法調用的性能成本下。

    相關問題