为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英546537 2021-06-30 15:43:26
我正在创建一个函数来检查给定的值是否为空,如果它未定义,等于空字符串,或者长度为零,它将返回 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))
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您正在理解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 moment

console.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 approach



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;

        

}



try {

  isEmpty(value);

} catch (e) {

  if (e.name == "ReferenceError") {

    console.log("variable not declared yet")

  }

}


查看完整回答
反对 回复 2021-07-01
?
阿晨1998

TA贡献2037条经验 获得超6个赞

这就是您正在寻找的,对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));


查看完整回答
反对 回复 2021-07-01
  • 2 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信