Существует ли стандартная функция для проверки нулевых, неопределенных или пустых переменных в JavaScript? - PullRequest
1942 голосов
/ 01 апреля 2011

Существует ли универсальная функция JavaScript, которая проверяет, что переменная имеет значение, и гарантирует, что она не undefined или null?У меня есть этот код, но я не уверен, что он охватывает все случаи:

function isEmpty(val){
    return (val === undefined || val == null || val.length <= 0) ? true : false;
}

Ответы [ 29 ]

2 голосов
/ 20 июня 2017
var myNewValue = myObject && myObject.child && myObject.child.myValue;

Это никогда не приведет к ошибке. Если myObject , child или myValue равно нулю, то myNewValue будет равно нулю. Ошибки не будут выброшены

2 голосов
/ 02 июня 2017
function isEmpty(val){
    return !val;
}

но это решение чрезмерно спроектировано, если вы не хотите позже модифицировать эту функцию для нужд бизнес-модели, тогда удобнее использовать ее непосредственно в коде:

if(!val)...
1 голос
/ 04 сентября 2016

Это проверит, является ли переменная неопределенного вложения неопределенной

function Undef(str) 
{
  var ary = str.split('.');
  var w = window;
  for (i in ary) {
    try      { if (typeof(w = w[ary[i]]) === "undefined") return true; }
    catch(e) { return true; }
  }
  return false;
}

if (!Undef("google.translate.TranslateElement")) {

Вышеприведенное проверяет, существует ли функция Google Translate для TranslateElement.Это эквивалентно:

if (!(typeof google === "undefined" 
 || typeof google.translate === "undefined" 
 || typeof google.translate.TranslateElement === "undefined")) {
0 голосов
/ 06 октября 2016

В моем случае я попытался использовать переменную if null, '',!, Но она не сработала.

См. Мой код ниже, чтобы получить текст из поля html

var status=$(this).text(); //for example (for my case)

если в переменной состояния не было значения (без текста), я пытался установить значение 'novalue' в переменную состояния.

сработал следующий код.

if(status == false)
{
   status='novalue';
} 

, когда не было найдено текста для переменной сатуса, вышеуказанный код назначил 'novalue' переменной состояния

0 голосов
/ 01 октября 2018
try{

     let vari = obj.propTest; // obj may be don't have propTest property

        ...
} catch(NullException){
    // do something here
}

Я думаю, что использование try catch позволит избежать любой ошибки проверки нуля, также в Angular или JavaScript. Просто перехватывает нулевое исключение и обрабатывает его.

0 голосов
/ 29 марта 2018

Вы можете напрямую использовать оператор равенства

<script>
    var firstName;
    var lastName = null;
    /* Since null == undefined is true, the following statements will catch both null and undefined */
        if(firstName == null){
            alert('Variable "firstName" is undefined.');
        }    
        if(lastName == null){
           alert('Variable "lastName" is null.');
        }
</script>

demo @ Как определить, является ли переменная неопределенной или нулевой, используя JavaScript

0 голосов
/ 28 февраля 2018

Эта функция проверяет empty object {}, empty array [], null, undefined и blank string ""

function isEmpty(val) {
  //check for empty object {}, array []
  if (val !== null && typeof val === 'object') {
    if (Object.keys(obj).length === 0) {
      return true;
    }
  }
  //check for undefined, null and "" 
  else if (val == null || val === "") {
    return true;
  }
  return false;
}

var val = {};
isEmpty (val) -> true
val = [];
isEmpty (val) -> true
isEmpty (undefined) -> true
isEmpty (null) -> true
isEmpty ("")-> true
isEmpty (false) -> false
isEmpty (0) -> false

0 голосов
/ 30 июня 2016

Я думаю, используя?оператор чуть чище.

var ? function_if_exists() : function_if_doesnt_exist();
0 голосов
/ 10 марта 2017

Несмотря на то, что старым, что забывает, что они должны обернуть свой блок кода, а затем поймать ошибку и затем проверить ...

function checkup( t ){
  try{
    for(p in t){
      if( p.hasOwnProperty( t ) ){
        return true;
      }
    }
    return false;
  }catch(e){
    console.log("ERROR : "+e);
    return e;
  }
}

Таким образом, вам действительно не нужно проверять потенциальную проблему перед тем, как взять ее в руки, вы просто ловите ее, а затем решаете, как хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...