两个JS的不好设计

Posted 春华秋实

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个JS的不好设计相关的知识,希望对你有一定的参考价值。

1.相等判断

if(a){}
相当于
if(a == ture){}

然而下面的相等判断都为true

0 == false
"" == false
"false" == false
undefined == false
null == false

假设你有一个需求,根据后端返回显示数字。
如果返回null,显示-1
你写下如下代码:

if(a){
    return a;
}
else{
    return -1;
}

这段代码有问题,问题是a==0时,返回-1,而不是返回0

2.new Date

new Date(null) //Thu Jan 01 1970 08:00:00 GMT+0800 (CST)。
new Date(0) // Thu Jan 01 1970 08:00:00 GMT+0800 (CST)
new Date(false)  // Thu Jan 01 1970 08:00:00 GMT+0800 (CST)
new Date(undefined) // Invalid Date
new Date('')  //Invalid Date。

对于 new Date的传参,需注意特别判断。

由1、2可知JS里面做判断,需===或者把其它异常值转换为一个异常值是较好的实践。

以上是关于两个JS的不好设计的主要内容,如果未能解决你的问题,请参考以下文章

回归 | js实用代码片段的封装与总结(持续更新中...)

JavaScript笔试题(js高级代码片段)

VSCode自定义代码片段——JS中的面向对象编程

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

VSCode自定义代码片段9——JS中的面向对象编程

将公共属性和方法公开给 Main Activity 的片段是不是是一种不好的形式?