Как определить, является ли переменная «неопределенной» или «нулевой»? - PullRequest
1871 голосов
/ 15 апреля 2010

Как определить, является ли переменная undefined или null? Мой код выглядит следующим образом:

var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
  //DO SOMETHING
};
<div id="esd-names">
  <div id="name"></div>
</div>

Но если я сделаю это, интерпретатор JavaScript остановит выполнение.

Ответы [ 23 ]

3 голосов
/ 04 марта 2015

Элемент проверки jQuery не нулевой

var dvElement = $('#dvElement');

if (dvElement.length  > 0) {
    //do something
}
else{
    //else do something else
}
2 голосов
/ 12 декабря 2017

С решением ниже:

const getType = (val) => typeof val === 'undefined' || !val ? null : typeof val;
const isDeepEqual = (a, b) => getType(a) === getType(b);

console.log(isDeepEqual(1, 1)); // true
console.log(isDeepEqual(null, null)); // true
console.log(isDeepEqual([], [])); // true
console.log(isDeepEqual(1, "1")); // false
etc...

Я могу проверить следующее:

  • ноль
  • undefined
  • NaN
  • пусто
  • строка ("")
  • 0
  • ложь
1 голос
/ 28 мая 2019

Самый простой способ проверить это:

if(!variable) {
  // If the variable is null or undefined then execution of code will enter here.
}
1 голос
/ 04 декабря 2016
var i;

if(i === null || typeof i === 'undefined'){
console.log(i,'i is undefined or null')
}else{
console.log(i,'i has some value')
}
1 голос
/ 27 мая 2018
(null == undefined)  // true

(null === undefined) // false

Потому что === проверяет как тип, так и значение. Типы оба разные, но значение одинаковое.

1 голос
/ 25 мая 2016

Лучший способ:

if(typeof variable==='undefined' || variable===null) {

/* do your stuff */
}
1 голос
/ 18 мая 2016

Я запускаю этот тест на консоли Chrome, используя (void 0), вы можете проверить undefined

var c;
undefined
if(c === void 0)alert();
// output =  undefined
var c = 1;
// output =  undefined
if(c === void 0)alert();
// output =   undefined
// check c value  c
// output =  1
if(c === void 0)alert();
// output =  undefined
c = undefined;
// output =  undefined
if(c === void 0)alert();
// output =   undefined
0 голосов
/ 15 августа 2015
var x;
if (x === undefined) {
    alert ("only declared, but not defined.")
};
if (typeof y === "undefined") {
    alert ("not even declared.")
};

Вы можете использовать только второй: он будет проверять как определение, так и объявление

0 голосов
/ 06 марта 2014

Вызов typeof null возвращает значение «object», поскольку специальное значение null считается пустой ссылкой на объект. Safari до версии 5 и Chrome до версии 7 имеют причуду, при которой вызов typeof для регулярного выражения возвращает «функцию», тогда как все другие браузеры возвращают «объект».

0 голосов
/ 05 августа 2017

if(x==null) - плохая идея в javascript, если судить с "==", это может привести к неожиданному принуждению к типу и не может быть прочитано кофейным скриптом, никогда не используйте "==" или "! =" При оценке состояния!

if(x) будет лучше. Но будьте осторожны 0 и "" , это будет трактоваться как false , не равный метод с "!= null" равен true .

enter image description here

https://www.w3schools.com/js/js_best_practices.asp

...