Javascript:即使未定义,如何处理函数的参数

我正在创建一个函数来检查给定的值是否为空,如果它未定义,等于空字符串,或者长度为零,它将返回 true。这是我所做的


isEmpty(value){

    if(typeof(value)=='undefined'){

        return true;

    }

    else if(value==''||value.length==0){

        return true;

    }

    return false;

}

但是当我评估一些未定义的变量时,例如 isEmpty(foo) 它会抛出一个未捕获的引用错误,但我想返回 true,怎么做?

function isEmpty(value) {

  if (typeof(value) == 'undefined') {

    return true;

  } else if (value == '' || value.length == 0) {

    return true;

  }

  return false;

}


console.log(isEmpty(value))


慕桂英546537
浏览 143回答 2
2回答

鸿蒙传说

您正在理解Undefined错误未定义意味着已经声明了一个变量,但该变量的值尚未定义(尚未分配值)。例如:function isEmpty(value){// or simply value===undefined will also do in your case  if(typeof(value)==='undefined'||value==''||value.length==0){        return true;    }  return false;        }let foo; // declared but not assigned a value so its undefined at the momentconsole.log(isEmpty(foo))   添加 - 什么是未捕获的 ReferenceError: "x" 未定义。某处引用了一个不存在的变量。这个变量需要声明,或者你需要确保它在你当前的脚本或作用域中可用。很明显,您没有在上下文中的任何地方引用您的变量,因此您会遇到该异常。跟进链接这是您可以通过捕获引用错误来检查变量是否在范围内或是否已声明的方法// Check if variable is declared or not//let value;try {  value;} catch (e) {  if (e.name == "ReferenceError") {    console.log("variable not declared yet")  }}// or the function approachfunction isEmpty(value){// or simply value===undefined will also do in your case  if(typeof(value)==='undefined'||value==''||value.length==0){        return true;    }  return false;        }try {  isEmpty(value);} catch (e) {  if (e.name == "ReferenceError") {    console.log("variable not declared yet")  }}

阿晨1998

这就是您正在寻找的,对value===undefined首次修复的测试。const isEmpty = (value) => value===undefined||typeof(value)==='undefined'||value===''||value.length===0;let foo;let bar = 'test';console.log(isEmpty());console.log(isEmpty(foo));console.log(isEmpty(bar));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript