Когда мы видим какой -то код от компании, например, из Google или из комитета ECMA: A , что это означает?
Может показаться, что для проверки того, относится ли переменная к примитивному NULL , но на самом деле это означает:
a === null || a === undefined
На самом деле, мы видим это A идентично использованию (a a)
Это используется ECMA TC39 (ECMA International, Технический комитет 39), когда они определили дополнительную цепочку:
a?.b
который они использовали
(a == null) ? undefined : a.b
часть A именно: когда A это нулевой или неопределенное , затем просто вернись неопределенное Анкет Это использование может быть немного сложно понять и используется людьми, более знакомыми с JavaScript, для «проверки на нулевые значения» – либо NULL или неопределенное Анкет Хотя мы не можем использовать его, если другие люди, читающие наш код, могут запутаться, это хорошо, когда мы читаем A и знать, что это значит.
Термин «nullish» также используется в сообществе JavaScript, как в Nullish Coalescing. Мы можем прочитать больше об этом на MDN.
Часто это все, что нам нужно знать, но если мы пойдем в одну техническую деталь:
Единственное исключение из правила выше – Document.all :
document.all == null // true
по правилу выше, это может появиться тогда
document.all === null || document.all === undefined
Возвращает Верно Анкет Но он возвращается ложный Анкет Это единственное известное исключение, но Document.all Возвращает объект, а !! Document.all Возвращает ложный , так Document.all имеет очень особое поведение внутри JavaScript.
Ссылка на MDN Анкет
Оригинал: “https://dev.to/kennethlum/a-null-has-a-special-meaning-92a”