Существует хорошая точка для использования !
для вызова функции, отмеченного на airbnb. JavaScript-руководство
Как правило, идея использования этого метода в отдельных файлах (aka модули), которые затем становятся конкатенированными. Предостережение здесь состоит в том, что файлы должны быть объединены инструментами, которые помещают новый файл в новую строку (что в любом случае является обычным для большинства инструментов concat). В этом случае использование !
поможет избежать ошибки в том случае, если ранее конкатенированный модуль пропустил конечную точку с запятой, и все же это даст гибкость, чтобы поместить их в любом порядке, не беспокоясь.
! function abc () {} ()! function bca () {} ();
Будет работать так же, как
! function abc () {} (); (функция bca () {}) ();
, но сохраняет два символа и произвольно выглядит лучше.
И, кстати, любой из +
, -
, ~
, операторы void
имеют одинаковый эффект в терминах вызывающей функции, если вы используете что-то, чтобы вернуться из этой функции, они будут действовать по-другому.
abcval =! function abc () {return true;} () // abcval равно false bcaval = + function bca () {return true;} () // bcaval равно 1 zyxval = -функция zyx ( ) {return true;} () // zyxval равно -1 xyzval = ~ function xyz () {return true;} () // ваша догадка?
, но если вы используете шаблоны IIFE для одного файла, разделите код модуля и используйте инструмент concat для оптимизации (что делает однострочное однострочное задание), чем конструкция
! функция abc (/ * нет возвращается * /) {} () + функция bca () {/ * нет возвращается * /} ()
Выполняет безопасный запуск кода, тот же как очень первый пример кода.
Это вызовет ошибку JavaScript не сможет выполнить свою работу.
! function abc (/ * no returns * /) {} () ( function bca () {/ * no returns * /}) ()
Одна нота относительно унарных операторов, они будут выполнять аналогичную работу, но только в том случае, если они не используются в первом модуле. Таким образом, они не настолько безопасны, если у вас нет полного контроля над порядком конкатенации.
Это работает:
! Function abc (/ * no returns * /) { } () ^ function bca () {/ * no returns * /} ()
Это не:
^ function abc (/ * no returns * /) {} ()! function bca () {/ * no returns * /} ()
Я не уверен, что вы подразумеваете под «отменой» изменения. Вы можете удалить настройку core.excludesfile
следующим образом:
git config --global --unset core.excludesfile
И, конечно, вы можете просто отредактировать файл конфигурации:
git config --global --edit
... и затем удалить настройку вручную.
Вы можете использовать флаг --unset
для git config
, чтобы сделать это следующим образом:
git config --global --unset user.name
git config --global --unset user.email
Если у вас больше переменных для одной конфигурации, вы можете использовать:
git config --global --unset-all user.name
Открыть файл конфигурации для редактирования:
git config --global --edit
Нажмите «Вставить» и удалите настройку
и, наконец, введите :wq
и Enter для сохранения.
Попробуйте это из командной строки, чтобы изменить подробности конфигурации git.
git config --global --replace-all user.name "Your New Name"
git config --global --replace-all user.email "Your new email"
git config --replace-all core.excludesfile "your_value"
– Juancho 30 January 2015 в 13:04system
, поэтому я использовалgit config --system --edit
для изменения моей записи. – colin_froggatt 6 May 2015 в 13:05