Bunu birkaç yerde gördüm
function fn() {
return +new Date;
}
Ve bir tarih nesnesi yerine bir zaman damgası döndürdüğünü görebiliyorum, ancak artı işaretinin ne yaptığına dair herhangi bir belge bulamıyorum.
Birisi açıklayabilir mi?
Bunu birkaç yerde gördüm
function fn() {
return +new Date;
}
Ve bir tarih nesnesi yerine bir zaman damgası döndürdüğünü görebiliyorum, ancak artı işaretinin ne yaptığına dair herhangi bir belge bulamıyorum.
Birisi açıklayabilir mi?
Yanıtlar:
bu + tekli operatördür, şuna eşittir:
function(){ return Number(new Date); }
getTimenesne üzerinde tanımlı yöntemi kullanmıyorsunuz ?!
.getTime()her zaman güvence altına alacaktır.
Date.now(), tarih ve saati milisaniye olarak almanın tercih edilen yoludur.
JavaScript gevşek bir şekilde yazılmıştır, bu nedenle belirli durumlarda tür zorlaması / dönüşümü gerçekleştirir:
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
Diğer örnekler:
>>> +new Date()
1224589625406
>>> +"3"
3
>>> +true
1
>>> 3 == "3"
true
JavaScript tarihi dize olarak yazılabilir:
Perş 10 Eyl 2015 12:02:54 GMT + 0530 (IST)
veya bir sayı olarak:
1441866774938
Sayı olarak yazılan tarihler, 1 Ocak 1970, 00:00:00 tarihinden bu yana geçen milisaniye sayısını belirtir.
Sorunuza gelince, atama operatörü '=' eklendikten sonra '+' ekleyerek, Tarihi eşit sayı değerine dönüştürüyor.
Number (yeni Date ()) gibi Number () işlevi kullanılarak da elde edilebilir;
var date = +new Date(); //same as 'var date =number(new Date());'
İşte "unary add" operatörü ile ilgili özellikler . Umarım yardımcı olur...
Daha fazla bilgi vermek için:
Hatırlarsanız, İki Tarih arasındaki saat farkını bulmak istediğinizde, sadece aşağıdaki şekilde yapabilirsiniz;
var d1 = new Date("2000/01/01 00:00:00");
var d2 = new Date("2000/01/01 00:00:01"); //one second later
var t = d2 - d1; //will be 1000 (msec) = 1 sec
typeof t; // "number"
şimdi d1-0 türünü kontrol ederseniz, aynı zamanda bir sayıdır:
t = new Date() - 0; //numeric value of Date: number of msec's since 1 Jan 1970.
typeof t; // "number"
bu + ayrıca Tarihi Sayıya dönüştürür:
typeof (+new Date()) //"number"
Ama bu notu 0 + new Date()olacak değil benzer şekilde işlenebilir! dize olarak birleştirilecektir:
0 + new Date() // "0Tue Oct 16 05:03:24 PDT 2018"
Bu bir tekli ekleme operatörü ve aynı zamanda açık Sayı dönüştürme için kullanılır, bu yüzden çağırdığınızda +new Date(), valueOf()biz dize alır gibi kullanarak o nesnenin sayısal değerini almaya çalışırtoString()
new Date().valueOf() == (+new Date) // true
Tam olarak aynı şeyi yapar:
function () {dönüş 0 + yeni Tarih; }
şununla aynı sonucu verir:
function () {yeni tarih döndür (). getTime (); }
new Date/1