Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the plus sign do in '+new Date'

People also ask

What does plus sign do in JavaScript?

The + operator returns the numeric representation of the object.

What does plus sign mean in typescript?

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 −

What does before a variable mean in JS?

It means "the opposite of". So if the variable contains "false", then putting "!" in front will make the result "true".

What is the unary operator JavaScript?

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"