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

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

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

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

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

Спасибо заранее.

Ответы [ 4 ]

0 голосов
/ 13 февраля 2019

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

enter image description here

Похоже, у обоих одинаковая производительность (я провел тест на 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;

enter image description here

0 голосов
/ 13 февраля 2019

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

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

0 голосов
/ 13 февраля 2019

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

null:

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

undefined:

Переменная, которой не присвоено значение, имеет тип 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);
0 голосов
/ 13 февраля 2019

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

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

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