为什么要避免JavaScript中的增量(“+”)和递减(“-”)操作符?

为什么要避免JavaScript中的增量(“+”)和递减(“-”)操作符?

其中之一Jslint工具提示是:

+和-
众所周知,+(增量)和-(递减)运算符通过鼓励过度的诡计而导致了错误的代码。在防范病毒和其他安全威胁方面,它们仅次于错误的架构。有一个plusplus选项禁止使用这些操作符。

我知道PHP构造像$foo[$bar++]很容易导致错误,但我想不出比一个更好的控制循环的方法了。while( a < 10 ) do { /* foo */ a++; }for (var i=0; i<10; i++) { /* foo */ }.

是jslint突出显示它们,因为有一些类似的语言缺少++“和”--语法或处理方式不同,或有其他避免的理由++“和”--“我可能失踪了?


慕雪6442864
浏览 487回答 3
3回答

largeQ

我的观点是总是在单行上使用+和-单独使用,如:i++;array[i]&nbsp;=&nbsp;foo;而不是array[++i]&nbsp;=&nbsp;foo;除此之外的任何事情都会让一些程序员感到困惑,在我看来,这是不值得的。for循环是一个例外,因为增量操作符的使用是惯用的,因此总是很清楚。

萧十郎

坦率地说,我被这条建议搞糊涂了。我有一部分想知道,这是否与javascript编码器缺乏经验(感知的或实际的)有更多的关系。我可以看到有人只是“黑客”一些示例代码可能会犯一个无辜的错误与+和-,但我不明白为什么一个有经验的专业人员会避免他们。

小怪兽爱吃肉

C语言有这样的历史:while&nbsp;(*a++&nbsp;=&nbsp;*b++);要复制一个字符串,也许这就是他所指的过度欺骗的根源。总有一个问题是++i&nbsp;=&nbsp;i++;或i&nbsp;=&nbsp;i++&nbsp;+&nbsp;++i;实际上是这样。它是用某些语言定义的,而在另一些语言中,无法保证会发生什么。撇开这些例子不说,我认为没有什么比使用for循环更实用的了++增加。在某些情况下,您可以使用foreach循环,也可以使用while循环检查不同的容忍度。但是,扭曲代码以避免使用增量是荒谬的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript