繁体   English   中英

javascript switch语句/大小写表达式

[英]javascript switch statement/case expression

我正在使用switch语句搜索未定义的值以手动更改它。 但是我在使用布尔表达式时遇到麻烦,就像在使用if语句时那样。

像: 如果statemant

if(Item1 == undefined)
{
  item1 ="No";
}
else if (Item2 == undefined)
{
  item2 = "No";
}

等等..

我尝试使用switch语句

 switch (array) {
 case (item1 == undefined):
 item1 = "No";
 console.log('item1 result', item1 );
 break;
 case item2 == undefined:
 item2 = "No";
 console.log('item2 result', item2 );
 break;
 default:

 }

它不会通过switch语句运行,除非我删除== undefined且仅使用item1 那行吗?

switch无法像这样评估数组的值,这就是为什么它不通过switch语句运行的原因。 您需要定义要切换的那个数组的值。

case statement您也不能使用表达式,您也必须在其中使用一个值。

因此,如果您不愿意使用switch来尝试完成任务,则可以执行以下操作:

item1 = array[1];
switch(item1) {
    case "undefined":
        // so on
    break;
}

但是,根据您的示例,您可能正在尝试检查是否设置了值,因此, if语句仍然是最佳选择,而不是切换。

$arr = []; // Your array
if(typeof $arr[0] == "undefined") {
    $arr[0] = "No";
}

开关只能应用1个变量,如下所示:

switch (array) {
 case 'undefined':
 item1 = "No";
 console.log('item1 result', item1 );
 break;
 case array.length:
 item2 = "No";
 console.log('item2 result', item2 );
 break;

 }
for(var i=0;i<array.length;i++){ 
    switch(array[i])  {
    case "undefined":
   //so on
      break;
  }
}

在读取函数的参数时很有用。

简短而简单的方法是

item1 = (item1 == null)? item1 : 'no';
item2 = (item2 == null)? item2 : 'no';

如果undefined item或为null ,则将为该项目分配值。

ps这是用于检查null或undefined,并且比使用switch更好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM