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

Самое близкое, что я видел для объяснения, - это то, что он говорит компрессору Дина Эдвардса игнорировать эту строку.

;;; var someVar = 'Rebel';
8
Chase Wilson 17 Июл 2010 в 00:12

5 ответов

Лучший ответ

Для отладочного кода есть строки, начинающиеся с трех точек с запятой: это означает, что эти строки не должны появляться в производственной среде. Javascript запускается с помощью компрессора или другого алгоритма, который удаляет ;;; строк при создании оптимизированного файла JS.

;;; console.log("only run this line when debugging!");

Как указано выше, три точки с запятой на самом деле ничего не делают в Javascript: он просто завершает три последовательных пустых оператора. Если реальный комментарий был использован

// console.log("only run this line when debugging!");

Затем вам нужно будет войти и вручную удалить все комментарии, когда вы хотите войти в режим отладки, а затем вернуться и положить их обратно, когда вы закончите. Другое решение - создать переменную DEBUG и обернуть все строки отладки в условие:

var DEBUG = true;
if(DEBUG){
     console.log("only run this line when debugging!");
}

Но это немного громоздко и фактически добавляет ненужный код в ваш документ Javascript. Конечно, вы можете запустить JS через компрессор, чтобы удалить условия DEBUG, но в этот момент вы можете просто использовать метод ;;;, который проще.

См. этот вопрос для реального примера этого. Кстати, я думаю, что синтаксис исходит от emacs .

11
Community 23 Май 2017 в 10:28

Они являются пустыми утверждениями и не имеют никакого эффекта. Возможно, что интерпретатор или компилятор удалит их, если синтаксис не требует оператора.

1
ChaosPandion 16 Июл 2010 в 20:14

Заканчивается пустое утверждение 3 раза.

8
Incognito 16 Июл 2010 в 20:15

Ничего. Абсолютно ничего.

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

18
Jacob Relkin 28 Июл 2010 в 17:51

Это заставляет людей задавать вопросы по StackOverflow.

Кроме этого, он ничего не делает.

26
Joey Adams 16 Июл 2010 в 20:15