【发布时间】:2024-05-01 12:55:02
【问题描述】:
什么是无操作的 JavaScript 约定?就像 Python pass 命令一样。
- 一个选项只是一个空函数:
function() {} - jQuery 提供
$.noop(),它只是调用上面的空函数。 - 是否可以简单地输入值
false或0?
在上下文中......所有这些工作都不会在 Chrome 中引发错误:
var a = 2;
(a === 1) ? alert(1) : function() {};
(a === 1) ? alert(1) : $.noop();
(a === 1) ? alert(1) : false;
(a === 1) ? alert(1) : 0;
编辑:很多人的回应是,“不要这样做!改变代码结构!”这让我想起了一篇帖子,有人问如何嗅探浏览器。他收到一连串帖子说“不要那样做!这是邪恶的”,但没有人告诉他如何嗅探浏览器。这不是代码审查。想象一下,您正在处理无法更改的遗留代码,并且没有传入某些函数,它会抛出错误。或者,简单地说,这就是客户想要的方式,他们付钱给我。所以,恭敬地,请回答问题:在 JavaScript 中指定“无操作”函数的最佳方法是什么?
EDIT2:其中一个怎么样?
true;
false;
0;
1;
null;
【问题讨论】:
-
为什么不是简单的 if 语句?
-
0的那些替代品实际上都没有更好(或更差)。我会说正确的做法是if (a === 1) doSomething();,而不是在没有意义的情况下使用? :。 -
您在滥用三元运算符并产生副作用。如果必须,请执行
if (statement) action; else ; -
是的
false或0会起作用;null是表达无操作的好方法。 -
我希望三元有一些我们由于某种原因看不到的必要性......看起来你把你的代码复杂化来感觉很酷(我们都做到了!)
标签: javascript function