null
- зарезервированное ключевое слово, которое нельзя переопределить, поэтому, когда вы делаете сравнение с нулем, все, что вам нужно сделать, - это одно сравнение.
Однако, когда вы проверяете по undefined
, движок должен выполнить поиск типа и затем сравнение, что означает, что на самом деле это немного более требовательно.
Если вам нужно проверить, не является ли что-то неопределенным, вы должны использовать
if(typeof notSet == "undefined"){ }
Доказательство
Попробуйте ... иустановите что-то на null
в вашей консоли JavaScript.
null = "will error";
// Errors with --> ReferenceError: invalid assignment left-hand side
Однако, если вы попытаетесь сделать это с неопределенным значением, это не приведет к ошибке.Это не означает, что вы можете переопределить undefined
, потому что вы не можете, но undefined
является его собственным примитивным типом.
Единственное реальное сходство между нулевым и неопределенным - то, что они могут обабыть приведенным к логическому ложному.