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