javascript开关语句/大小写表达式

javascript开关语句/大小写表达式,javascript,angularjs,Javascript,Angularjs,我使用switch语句搜索未定义的值以手动更改它。但是我在使用布尔表达式时遇到了问题,就像我在使用if语句时遇到的问题一样 例如:如果声明 if(Item1 == undefined) { item1 ="No"; } else if (Item2 == undefined) { item2 = "No"; } 等等 我用开关语句尝试了这一点: switch (array) { case (item1 == undefined): item1 = "No"; console.l

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

例如:如果声明

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

我用开关语句尝试了这一点:

 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 (array) {
 case 'undefined':
 item1 = "No";
 console.log('item1 result', item1 );
 break;
 case array.length:
 item2 = "No";
 console.log('item2 result', item2 );
 break;

 }
不能像这样计算数组的值,这就是为什么它不通过switch语句运行的原因。您需要定义要切换该数组的哪个值

case语句中
也不能使用表达式,还必须使用表达式中的值

因此,如果您死心塌地地想使用
开关
来完成您想要完成的任务,您可以这样做:

item1 = array[1];
switch(item1) {
    case "undefined":
        // so on
    break;
}
但是,根据您的示例,您可能正在尝试检查值是否已设置,因为
if
语句仍然是最佳选择,而不是切换

$arr = []; // Your array
if(typeof $arr[0] == "undefined") {
    $arr[0] = "No";
}
for(var i=0;i在读取函数参数时非常有用

短而简单的方法是

item1 = (item1 == null)? item1 : 'no';
item2 = (item2 == null)? item2 : 'no';
如果
未定义的
它将为该特定项赋值,否则为该项赋值


p.s.这是用来检查空值或未定义值的,比使用switch更好。

你需要学习基础知识。我以前使用过if语句,但有人告诉我最好使用switch?@RGdent,为什么?他到底说了什么?为什么
switch
更适合你要做的事情?可能有误判站在那里,谢谢你清理,谢谢!
item1 = (item1 == null)? item1 : 'no';
item2 = (item2 == null)? item2 : 'no';