Я часто вижу такие примеры:
Кода -копия выглядит следующим образом:
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 возвращение восклицательного знака также верно;
var o = {flag: true};
var test = !! o.flag; // эквивалент Var test = o.flag || false;
предупреждение (тест);
Этот пример демонстрирует, что, когда не насыщен и нулевой, возврат одной восклицательной точки является истинной, а возврат двух восклицательных точек является ложной, поэтому функция двух восклицательных точек заключается в том, что если значение переменной четко установлено (не является не Null/undifined/0/"и" эквивалентные значения), результат будет возвращен на основе фактического значения переменной.