Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在for中处理未定义的。。。环的?_Javascript - Fatal编程技术网

Javascript 在for中处理未定义的。。。环的?

Javascript 在for中处理未定义的。。。环的?,javascript,Javascript,假设我的代码如下所示: const days = ['Monday', 'Tuesday']; for (const day of days) { console.log(day); } 它打印“星期一”和“星期二” 如果由于任何原因,days未定义,那么我会得到一个运行时错误 我可以通过输入如下代码来处理此问题: if (undefined == days) { // logic here } 对我来说,这似乎有点笨重。有没有办法让用于。。。是否忽略未定义的值?基本上,将其视为零

假设我的代码如下所示:

const days = ['Monday', 'Tuesday'];

for (const day of days) {
  console.log(day);
}
它打印“星期一”和“星期二”

如果由于任何原因,
days
未定义,那么我会得到一个运行时错误

我可以通过输入如下代码来处理此问题:

if (undefined == days) {
  // logic here
}

对我来说,这似乎有点笨重。有没有办法让
用于。。。是否忽略未定义的值?基本上,将其视为零长度数组,这样for循环中的逻辑就不会执行,但也不会引发错误。

您可以始终在括号块中使用forEach和逻辑or

(days||[]).forEach(day=>{console.log(day)});
我想你也可以在for循环中使用它

for(let day of (days||[])) {
   console.log(day);
}

您可以始终在括号块中使用forEach和逻辑or

(days||[]).forEach(day=>{console.log(day)});
我想你也可以在for循环中使用它

for(let day of (days||[])) {
   console.log(day);
}

检查空值的最佳方法是在使用变量之前对其进行初始化,该变量可以是字符串、对象或数组。通过这种方式,程序可以理解变量,并且可以很容易地为您推荐函数

  //Initializing Varable
  let stringVariable = '' ;
  let objectVariable = {};
  let arrayVariable = [] ;
就你而言

 let days = []
 for(let day of (days)) {
  console.log(day);
 }

检查空值的最佳方法是在使用变量之前对其进行初始化,该变量可以是字符串、对象或数组。通过这种方式,程序可以理解变量,并且可以很容易地为您推荐函数

  //Initializing Varable
  let stringVariable = '' ;
  let objectVariable = {};
  let arrayVariable = [] ;
就你而言

 let days = []
 for(let day of (days)) {
  console.log(day);
 }

不可以。如果数组引用变量可能是未定义的
,则必须对其进行显式测试。您还可以使用
days=days | |[]为
设置
。我现在在手机上,但是会不会
(const day of(days | |[])
不工作?虽然这很难看,但在依赖变量之前,它绝对应该经过测试。我感觉我是在你编辑时输入的。Fwiw:Lodash将未定义视为空数组。例如“each(未定义,el=>…)”忽略它而不是测试它可能会造成未来的头痛。如果数组引用变量可能是未定义的,则必须对其进行显式测试。您还可以使用
days=days | |[]为
设置
。我现在在手机上,但是会不会
(const day of(days | |[])
不工作?虽然这很难看,但在依赖变量之前,它绝对应该经过测试。我感觉我是在你编辑时输入的。Fwiw:Lodash将未定义视为空数组。例如“u.each(未定义,el=>…)”忽略它而不是测试它可能会造成未来的麻烦