Есть ли какая-либо разница между функциями!= Null и!= Undefined в javascript?

В JavaScript есть какая-либо функциональная разница между использованием != null а также != undefined?

Есть ли значение, которое вы можете присвоить myVar что заставит эти две строки кода оценить разные результаты?

console.log(myVar != undefined)
console.log(myVar != null)

И если вы знаете что-нибудь о выполнении этих двух операций, я бы тоже хотел знать об этом.

Заранее спасибо.

4 ответа

Решение

Там нет разницы, как вы можете видеть в таблице ниже для JS == тестирование (фокус на пустой / неопределенной строке / столбце) (источник: здесь). Так myVar!=null верно только если myVar значение не null и не undefined (то же самое с myVar != undefined)

Похоже, у обоих одинаковая производительность (я провел тест на Mac OS X 10.13.4 HighSierra: Chrome 71.0.3578, Firefox 65.0.0 и Safari 11.1.0 - вы можете запустить тест в своем браузере здесь)

let myVar1=null;
let myVar2=undefined;

Там нет функциональной разницы. x != undefined а также x != null оба оценивают только false когда x является null или же undefined, Они оба оценивают как истинные для всех других значений x,

Также нет разницы в производительности.

== а также != операторы производят "преобразование типа" для сравнения только самого значения. Тогда нет, нет никакой разницы, используя "неопределенный" или "нулевой" в этом случае, оба представляют "пустой".

Но если вы используете === а также !== вместо этого он проверяет тип и значение без приведения типов. Результаты для двух строк будут разными.

myVar = null;
console.log(myVar !== undefined) //true
console.log(myVar !== null) //false

Не путайте undefined и null, так как они не одно и то же.

ноль:

Значение null представляет намеренное отсутствие какого-либо значения объекта. Это одно из примитивных значений JavaScript.

не определено:

Переменная, которой не присвоено значение, имеет тип undefined. Метод или оператор также возвращает неопределенное значение, если оцениваемая переменная не имеет назначенного значения. Функция возвращает неопределенное значение, если значение не было возвращено.


Если переменная состоит из значения, которое не является ни null ни undefined Тогда нет никакой разницы в вашем состоянии.

const value = 3;

console.log(value !== undefined) //true
console.log(value !== null) //true

Тем не менее, лучший способ проверки, если переменная null или же undefined это использовать ! отрицание как ценность null или же undefined будет решено до истины.

const undefinedValue = undefined;
const nullValue = null;

console.log(!undefinedValue);
console.log(!nullValue);

Вот несколько примеров этого.

var someVariable = undefined;

console.log(someVariable !== undefined, "; undefined !== undefined");
console.log(someVariable !== null, "; undefined !== null");

var someVariable = null;

console.log(someVariable !== undefined, "; null !== undefined");
console.log(someVariable !== null, "; null !== null");


var someVariable = undefined;
console.log(!someVariable);

var someVariable = null;
console.log(!someVariable);

Другие вопросы по тегам