Точки с запятой для пустых строк после операторов if

Я получил этот проект JS с открытым исходным кодом и попытался просмотреть код, который я нашел это несколько раз:

if(evt.success){ ; evt.success(response.result);
}

Пустая строка, заканчивающаяся символом ";"

Это что-то значит? или это просто ошибка ввода?

3 ответа

Это совершенно верно. Это будет просто рассматриваться как пустая строка/утверждение, и ничего не произойдет. Но это не означает ничего особенного, что вам нужно беспокоиться о том, нужно ли его удалить.

Что касается того, почему это в коде, я не знаю. Если бы это был всего лишь один экземпляр, я бы пошел с опечаткой, но несколько экземпляров, которые я бы сказал, либо специально, либо, возможно, результат некоторого генерации кода (и это может быть опечатка), или по какой-то другой причине - мы не можем знать, не найдя человека, принявшего решение о его включении.


Это один из подходов к защитному программированию в javascript. Рассмотрим что-то вроде этого:

var y=x+f
(a+b).toString()

Это будет интерпретироваться как:

var y=x+f(a+b).toString()

С помощью; перед началом заявления устранены такие проблемы, как выше.


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

licensed under cc by-sa 3.0 with attribution.