!! Обычно он используется для того, чтобы поднять следующее выражение в логические данные (логические), то есть оно может быть только истинной или ложным;
Я часто вижу такие примеры:
Кода -копия выглядит следующим образом:
var a;
var b = !! a;
А не определен по умолчанию. ! A - это правда, !! a является ложным, поэтому значение b ложное, больше не неопределенное, ни другие значения, которые в основном обеспечивают удобство для последующего суждения.
!! Обычно он используется для того, чтобы поднять следующее выражение в логические данные (логические), то есть оно может быть только истинной или ложным;
Поскольку JavaScript-это язык слабого типа (переменные не имеют фиксированных типов данных), иногда его нужно поднять на соответствующий тип, например:
a = parseint ("1234") a = "1234" -0 // конвертируется в номер B = 1234+"// конвертировать в строку c = cheomeobject.tostring () // Конвертировать объект в строкуСреди них первая и четвертая - явные преобразования, а 2 и 3 - неявные конверсии
Логическое преобразование, правила конвенции JavaScript
ложный, неопределенный, нулевый, 0, ""
Правда, 1, "Соместринг", [объект] правда
Для других неявно преобразованных значений, таких как нулевые и неопределенные,! Оператор даст истинные результаты, поэтому цель использования двух восклицательных знаков состоит в том, чтобы преобразовать эти значения в «эквивалентные» логические значения;
Давайте снова посмотрим:
var foo; Alert (! Foo); // не поддается восклицательному восклицанию, возвращает True; Alert (! GOO); // В NULL восклицательный знак возвращает True; var o = {flag: true}; var test = !! o.flag; // эквивалент Var test = o.flag || false; предупреждение (тест);Этот пример демонстрирует, что, когда не насыщен и нулевой, возврат одной восклицательной точки является истинной, а возврат двух восклицательных точек является ложной, поэтому функция двух восклицательных точек заключается в том, что если значение переменной четко установлено (не нулевое/неразмерное/0/«и« эквивалентные значения), результат будет возвращен на основе фактического значения переменной. Если он не установлен, результат будет возвращен.