Каково последствие этого бита JavaScript?

Вы можете использовать Perl для этого:

perl -pe 's/(get[A-Z][A-Za-z0-9]*)_([A-Z])/\1_\l\2/'

Здесь есть трюк \ l.

sed не выполняет прописные / строчные буквы в сопоставляемых группах.

10
задан jrharshath 23 June 2009 в 10:20
поделиться

4 ответа

почему перед точкой с запятой стоит jQuery?

Точка с запятой используется для безопасной конкатенации файлов. (библиотеки и библиотечные компоненты часто упаковываются в один файл)

почему выполняется логическое ИЛИ?

Самозапускающаяся анонимная функция справа будет запускаться только в том случае, если левая часть утверждение оценивается как ложное значение. Таким образом, если jQuery.ui уже существует на странице, функция не будет запущена. Он запускается только тогда, когда jQuery.ui еще не существует.

21
ответ дан 3 December 2019 в 15:22
поделиться

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

Логическое или есть чтобы убедиться, что jQuery.ui не объявляется дважды. JavaScript выполняет короткое замыкание, поэтому он не будет оценивать правую часть || , если левая часть оценивает что-то, что является правдой (спасибо JP ​​ ]!) .

Расшифровка дополнительного синтаксиса: $, переданный анонимной функции, является ссылкой на jQuery. Мне пришлось прокрутить страницу вниз до того, как он щелкнул: -)

Итак, вот разбитая версия строки выше

;              // extra semi colon to ensure correct concatenation and minifying
jQuery.ui      // check if the variable called jQuery.ui is truthey
||             // OR if jQuery.ui isn't defined
(function($) {...})(jQuery); // define and execute an anonymous function
                             // passing in the conflict safe jQuery
                             // as the parameter called $
6
ответ дан 3 December 2019 в 15:22
поделиться

По-английски эта строка кода говорит: либо существует jQuery.ui, ИЛИ определите эту функцию ...

Например, если jQuery.ui не определен, функция будет создана.

Первоначальный полуфабрикат -colon не должен иметь никакого эффекта - он просто ограничивает конец оператора кода.

1
ответ дан 3 December 2019 в 15:22
поделиться

Я думаю, что выполняется логическое ИЛИ, чтобы файл можно было включать (и оценивать) несколько раз, а не сам по себе: если вы загрузите его снова, jQuery.ui уже будет

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

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

Ложная точка с запятой не причиняет вреда, а отсутствующая точка с запятой может.

1
ответ дан 3 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

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