在阅读道格拉斯·克罗克福德的“JavaScript:The Good Parts”和斯托扬·斯特凡诺夫的“JavaScript模式”后,我试图确定“过度棘手”的含义。他们都说在您的代码中使用++
或--
时会出现这种情况,但无法在SO内或通过Google搜索找到此术语的固定定义。有什么想法吗?
答案 0 :(得分:5)
你可以在这里听到克罗克福德的消息:http://www.youtube.com/watch?feature=player_detailpage&v=47Ceot8yqeI#t=4140s
简单的答案是++
和--
对变量起作用,并且通常在您对该变量执行其他操作的同时执行此操作。例如,你能快速决定它的作用吗?
y += x++ + ++y; // what is y now?
更多StackOverflow讨论:Why avoid increment ("++") and decrement ("--") operators in JavaScript?
答案 1 :(得分:1)
这是关于内置的小技巧。例如,avar++
是avar = avar + 1
的别名。
JavaScript充满了运算符和其他使编程更容易的东西,但它们只是技巧。这可能就是他的意思。
另外,正如乔纳森指出:Why avoid increment ("++") and decrement ("--") operators in JavaScript?
答案 2 :(得分:0)
过度的诡计是主观的。因此,它没有明确的定义。
有人会说C着名的字符串复制代码(while (*p++ = *q++);
)过于棘手,有些人会说它不是。
答案 3 :(得分:0)
这是一个相当长的讨论链接:
Why avoid increment ("++") and decrement ("--") operators in JavaScript?
我认为这个想法的一部分是,当在任何地方使用这些运算符但在单行上使用单个变量时,它们会让那些不在开发人员头脑中的人感到困惑。