当然对其他人来说没什么奇怪的,只有我这样一知半解才会觉得奇怪。
比如你跟它要月份,它给你少算一个月,得加回去才行。什么意思?
getToday: function (){
let date = new Date(),
month = date.getMonth() + 1
return date.getFullYear() + "年" + month + "月" + date.getDate() + "日"
}
在 js 里,这些东西都被当作 false:
undefined
null
NaN
''
-0
0
+0
我是怎么后知后觉地了解到这个常识的呢?是这样,我继承的代码里有很多这样的东西:
if ( val != undefined && val != null && val != '' ) {
// ...
}
就是 val 存在嘛,这样好了:
if ( val ) { // 如果 val 有东西,这里就会是 true
// ...
}
So you see it coming. Sooner or later 自然就出现了 val 明明有东西,上面却等于 false 的情况。哎,就是跟数字有关的那几种啦。0 是 false,倒也没什么不合理。于是我写了个不严谨的小方法,又可以继续懒了。
isEmpty: function (val) {
if( val == undefined || val == null || ( typeof(val) == 'string' && val == '' ) ) {
return true
} else {
return false
}
}
最后说一个:浮点数运算。
以前在 python 家也见识过浮点数的本事,但它是以这种形式表现:百万分之一累加百万次后得不到 1,有点偏差。js 这个就太经典了:
0.1 + 0.2 = 0.30000000000000004
In your face!
总之遇到小数都逐个先转成整数就对了。
写这么简单的东西感觉自己好白痴。