从它提到的可维护的JavaScript这本书中提到:
// Bad: Testing to see if an argument was passed
function doSomething(arg1, arg2, arg3, arg4){
if (arg4 != null){
doSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
但我觉得!= null在这里使用是非常有效的,它过滤了未传递的参数或传递为null的情况
为什么作者认为它是坏的?
!= null这是假的undefined,它基本上意味着x !== null && x !== undefined.!=确实类型强制,其中一个影响是它对待null和undefined等同(null == undefined是真的).
所以,除非你想的是,有些人建议不使用!=与null(或undefined).
而且你的代码可以防御两种(实际上是三种)可能性,这是非常正确的:
根本没有通过论证.
null 通过了.
undefined 通过了.
但评论说,测试一个参数是否被传递是一种不好的方法,它是:因为它没有捕获传递null或undefined.(null传入而不传入任何东西都是不同的情况.)这并不一定意味着检查特定函数的参数是一种不好的方法.
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |