Что такое "чрезмерная хитрость"? - PullRequest
3 голосов
/ 29 декабря 2011

После прочтения «JavaScript: хорошие части» Дугласа Крокфорда и «Паттернов JavaScript» Стояна Стеванова, я пытаюсь точно определить, что означает «чрезмерная хитрость». Они оба говорят, что это происходит при использовании либо ++, либо -- в вашем коде, но не могут найти точное определение этого термина ни в SO, ни в поиске Google. Есть идеи?

Ответы [ 4 ]

5 голосов
/ 29 декабря 2011

Вы можете услышать это от самого Крокфорда здесь: http://www.youtube.com/watch?feature=player_detailpage&v=47Ceot8yqeI#t=4140s

Простой ответ заключается в том, что ++ и -- действуют на переменную и обычно делают это одновременно с тем, как вы делаете что-то еще с этой переменной. Например, вы можете быстро решить, что это делает?

y += x++ + ++y; // what is y now?

Больше обсуждений в StackOverflow: Зачем избегать операторов увеличения ("++") и уменьшения ("-") в JavaScript?

1 голос
/ 29 декабря 2011

Речь идет о встроенных маленьких хитростях. Например, avar++ является псевдонимом для avar = avar + 1.

JavaScript полон операторов и других вещей, которые облегчают программирование, но это всего лишь уловки. Это, вероятно, то, что он имеет в виду.

Кроме того, как отметил Джонатан: Зачем избегать операций увеличения ("++") и уменьшения ("-") в JavaScript?

0 голосов
/ 29 декабря 2011

Вот довольно длинное обсуждение со ссылками:

Зачем избегать операторов увеличения ("++") и уменьшения ("-") в JavaScript?

Я думаю, что часть идеи заключается в том, что при использовании этих операторов в любом месте, но с одной переменной в одной строке, они становятся запутанными для всех, кто не в голове разработчика.

0 голосов
/ 29 декабря 2011

Чрезмерная хитрость субъективна. Из-за этого нет четкого определения для этого.

Кто-то скажет, что известный C-код (стр. 1003 *) слишком сложен, кто-то скажет, что это не так.

...