Что значит восклицательный знак в программировании
Все уроки по C# расположены здесь
На этом уроке мы отойдем от арифметики и кинем первый взгляд на логический тип данных C# и его операторы. Логические данные широко используются в программировании, и понимание их особенностей имеет больше значение.
Обзор типа данных Boolean
На третьем уроке по основам C#, я показал логический тип данных. Логическая переменная может хранить только два значения, true или false. В следующем примере показано простое задание булевых переменных, которые объявлены с помощью bool.
Логический тип данных имеет свой собственный набор логических операторов. Они позволяют проверить или изменить значение булевой переменной. Результирующие значения могут быть использованы в условных операторах, чтобы определить направление кода. Условное программирование будет рассмотрено позже в учебнике. В следующих разделах описываются различные доступные операторы.
Оператор NOT является унарным оператором, так как действует на один операнд. Оператор NOT инвертирует значение логического значения. Если исходное значение true, то возвращаемое значение false; если исходное значение false, возвращаемое значение true. Операцию иногда называют двоичным дополнением.
Используется для сравнения двух логических значений. Возвращает значение true, если оба операнда имеют значение true. В таблице ниже показаны исходные операнды и результат AND.
Оператор AND представлен символом амперсанда
OR используется, чтобы сравнить два значения типа boolean. Оператор OR возвращает значение true, если один из операндов имеет значение true. Это может быть представлено следующей таблицей:
Оператор OR представлен символом бара (|)

Что делает восклицательный знак перед функцией?
10 ответов
Синтаксис JavaScript 101. Вот объявление функции :
Так что автор делает сохранение байта на выражение функции; более читабельный способ написать это будет так:
Возвращает, может ли оператор оценить как ложный. например:
Вы можете использовать его дважды, чтобы привести значение к логическому:
Итак, чтобы более прямо ответить на ваш вопрос:
Давайте сохраним несколько других байтов!
Вместо этого используйте закрывающую скобку и BANG (! ), если это необходимо.
Это еще один способ написания IIFE (выражение, вызываемое немедленно).
Ничего не возвращает (или не определено).
Иногда мы хотим вызвать функцию прямо при ее создании. Вы можете попробовать это:
Восклицательный знак заставляет любую функцию всегда возвращать логическое значение. Конечным значением является отрицание значения, возвращаемого функцией.
Тем не менее, лучший способ добиться этого будет:
! будет отрицать (напротив) все, что вы ожидаете в результате, т.е. если у вас есть
Это просто для сохранения байта данных при минимизации JavaScript.
Рассмотрим ниже анонимную функцию
Чтобы сделать вышеуказанное как самопризывающуюся функцию, мы, как правило, изменим приведенный выше код как
Будет работать так же, как
Но сохраняет один символ и выглядит произвольно лучше.
, void имеет одинаковый эффект с точки зрения вызова функции, наверняка, если вам нужно что-то использовать чтобы вернуться из этой функции, они будут действовать по-другому.
Но если вы используете шаблоны IIFE для одного файла с разделением кода на один модуль и используете инструмент concat для оптимизации (что делает одну строку одним файлом), то конструкция
Будет выполнять безопасное выполнение кода, так же, как самый первый пример кода.
Этот вызовет ошибку, поскольку JavaScript ASI не сможет выполнить свою работу.
Одно замечание относительно унарных операторов, они будут выполнять аналогичную работу, но только в том случае, если они используются не в первом модуле. Поэтому они не настолько безопасны, если вы не имеете полного контроля над порядком объединения.


