我非常清楚,在JavaScript中,null和undefined是不同的.但是,当我自己的函数被传递给其中一个作为其参数时,我似乎无法决定是否使用该事实.
或者,以不同的方式表达,应该myFoo(undefined)返回相同的东西myFoo(null)?
或者,在另一种情况下,既然myBar(1, 2, 3)(几乎)是相同的myBar(1, 2, 3, undefined, undefined),应该myBar(1, 2, 3, null, null)返回相同的东西myBar(1, 2, 3)?
我觉得在这两种情况下都存在混淆的可能性,并且在处理null/undefined时,库应该遵循约定.
我并不是真的要求个人意见(所以请将其表达为评论而非答案).我问是否有人知道在处理这种区别时是否应该坚持最佳做法.非常欢迎参考外部资源!
Ben*_*ank 11
我想说的是,虽然,大部分的时候,有两个区分价值不大,那里的情况是值往往是相当有趣的.
举个例子,一个可以给出回调的函数. undefined可能表示应该使用某些默认回调(就好像没有指定参数),但null可能表明根本不应该进行回调:
function asyncWorker(data, callback, timeout) {
if (typeof callback === "undefined") {
callback = function() { $("#log").append("<p>Done!</p>"); };
}
// ...
if (callback) callback();
}
asyncWorker([1, 2, 3]); // default callback, no timeout
asyncWorker([4, 5, 6], null); // no callback, no timeout
asyncWorker([7, 8, 9], undefined, 10000); // default callback, 10s timeout
Run Code Online (Sandbox Code Playgroud)
当然,false或者0可以代替null这里使用,但在更复杂的例子中可能不是这种情况.您的代码是否受益于额外的参数复杂性完全取决于您.:-)
| 归档时间: |
|
| 查看次数: |
18277 次 |
| 最近记录: |