The + operator returns the numeric representation of the object.
The plus(+) sign before the variables defines that the variable you are going to use is a number variable. In the below code, there is brief description about plus sign. Following is the code −
It means "the opposite of". So if the variable contains "false", then putting "!" in front will make the result "true".
JavaScript Unary Operators are the special operators that consider a single operand and perform all the types of operations on that single operand. These types of operators include unary plus, unary minus, prefix increments, postfix increments, prefix decrements, and postfix decrements.
that's the + unary operator, it's equivalent to:
function(){ return Number(new Date); }
see: http://xkr.us/articles/javascript/unary-add/
and in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus
JavaScript is loosely typed, so it performs type coercion/conversion in certain circumstances:
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
Other examples:
>>> +new Date()
1224589625406
>>> +"3"
3
>>> +true
1
>>> 3 == "3"
true
Here is the specification regarding the "unary add" operator. Hope it helps...
A JavaScript date can be written as a string:
Thu Sep 10 2015 12:02:54 GMT+0530 (IST)
or as a number:
1441866774938
Dates written as numbers, specifies the number of milliseconds since January 1, 1970, 00:00:00.
Coming to your question it seams that by adding '+' after assignment operator '=' , converting Date to equal number value.
same can be achieve using Number() function, like Number(new Date());
var date = +new Date(); //same as 'var date =number(new Date());'
Just to give some more info:
If you remember, When you want to find the time difference between two Date's, you simply do as following;
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"
now if you check type of d1-0, it is also a number:
t = new Date() - 0; //numeric value of Date: number of msec's since 1 Jan 1970.
typeof t; // "number"
that + will also convert the Date to Number:
typeof (+new Date()) //"number"
But note that 0 + new Date()
will not be treated similarly! it will be concatenated as string:
0 + new Date() // "0Tue Oct 16 05:03:24 PDT 2018"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With