let startTime=+new Date()

188 阅读1分钟

相信很多小伙伴在定时器测试时间的时候,遇到了时间对象的这种写法,这次就好好了解这个相加运算符:

  • eg1 let startTime=+new Date() 对于上面这种在一个数据类型前面加一个'+'号,+new Date()会调用Date.prototype上面的valueOf方法,下面的例子等效
+new Date();
new Date().getTime();
new Date().valueOf();
new Date()*1
  • eg2 在数据前面使用'+',这个操作的目的是为了将该数据类型转换为Number类型,如果转换失败,则返回NaN
    console.log([3])//[3]
    console.log(+[3])//3,比较特殊
    console.log(+[3,4])//NaN
    console.log(+(2+'1'))//数字3
  • eg3 普通的相加运算符(数字相加)
    console.log(1+6)//7
    console.log(1+true)//2
    console.log(1+false)//1
    console.log(1+NaN)//NaN
    console.log(1+undefined)//NaN
    console.log(1+null)//1
  • eg4 字符串的拼接, '+'号两侧只要有一侧是字符串,就会进行字符串拼接
    console.log(5+'G')//5G
    console.log(5+'G'+true)//5Gtrue
  • eg5
console.log("b"+"a"+ +"a"+"b");//baNaNb
//注意+“a”前面要有一个空格,因为"a"不是数字,所以是NaN