& Ldquo; неожиданный ++ & rdquo; ошибка в jslint [дубликат]

Этот код вернет все ответное сообщение в качестве String и код состояния в rsp в качестве int.

respond = response.getStatusLine().getReasonPhrase();

rsp = response.getStatusLine().getStatusCode();`
144
задан KdgDev 8 June 2010 в 20:12
поделиться

3 ответа

Используйте i += 1 вместо этого, если вы хотите последовать совету jslint.

93
ответ дан 23 November 2019 в 22:43
поделиться

Чтобы избежать путаницы и возможных проблем при использовании минификаторов, всегда обводите паренами оператор и его операнд, когда они используются вместе с одним и тем же (+ или -).

var i = 0, j = 0;
alert(i++ +j);

Это добавляет i и j (и увеличивает i в качестве побочного эффекта), в результате чего 0 будет предупрежден.

Но что если кто-то придет и сдвинет пробел?

var i = 0, j = 0;
alert(i+ ++j);

Теперь это сначала увеличивает j, а затем добавляет i к новому значению j, в результате чего будет выдана 1.

Это можно легко решить, сделав

var i = 0, j = 0;
alert((i++) +j); 

Теперь это не может быть ошибочным.

28
ответ дан 23 November 2019 в 22:43
поделиться

Лично я предпочитаю помещать такие утверждения, как i++, в отдельную строку. Включение их в состав более крупного утверждения может привести к путанице для тех, кто не уверен в том, что должна делать эта строка.

Например, вместо:

value = func(i++ * 3);

Я бы сделал так:

value = func(i * 3);
i++;

Это также означает, что людям не нужно помнить, как работают i++ и ++i, и устраняет необходимость применять довольно много правил предпочтения.

13
ответ дан 23 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: