JavaScript で、if 文 や switch 文 の結果を変数に代入
JavaScript で、if 文 や switch 文 の結果を変数に代入
JavaScript
では、if 文
や switch 文
の結果を変数に代入できません。
Ruby の case 文 と JavaScript の switch 文
Ruby
case 文
# Ruby
fruit = 'みかん'
case fruit
when "りんご"
p 'apple'
when "みかん"
p 'orange'
when "もも"
p 'peach'
else
p 'ないよ'
end
=> "orange"
case 文の結果を result に入れる
# Ruby
fruit = 'みかん'
result = case fruit
when "りんご"
'apple'
when "みかん"
'orange'
when "もも"
'peach'
else
'ないよ'
end
p result
=> "orange"
JavaScript
switch 文
// JavaScript
fruit = "みかん";
switch (fruit) {
case "りんご":
console.log("apple");
break;
case "みかん":
console.log("orange");
break;
case "もも":
console.log("peach");
break;
default:
console.log("ないよ");
}
> orange
case 文の結果を result に入れたかった
Ruby
と同じようなことは、できません。
// JavaScript
fruit = "みかん";
result = switch (fruit) {
case "りんご":
"apple";
break;
case "みかん":
"orange"
break;
case "もも":
"peach";
break;
default:
"ないよ";
}
console.log(result);
SyntaxError
上記を実行すると、下記のようになります。
result = switch (fruit) {
^^^^^^
SyntaxError: Unexpected token switch
これなら動く
// JavaScript
fruit = "みかん";
result = "果物"
switch (fruit) {
case "りんご":
result = "apple";
break;
case "みかん":
result = "orange"
break;
case "もも":
result = "peach";
break;
default:
result = "ないよ";
}
console.log(result);
> orange
break; 消した場合
true
になったところから、break;
があれば break;
が実行されるまで、
break;
がなければ最後まで実行されます。
// JavaScript
fruit = "みかん";
result = "果物"
switch (fruit) {
case "りんご":
result = "apple";
case "みかん":
result = "orange"
case "もも":
result = "peach";
default:
result = "ないよ";
}
console.log(result);
> ないよ
case "みかん":
で true
になるが、下の result = "ないよ";
まで実行されるので、
console.log(result)
で、ないよ
が表示されます。
case "みかん":
result = "orange"
case "もも":
result = "peach";
default:
result = "ないよ";
if 文
if 文
も switch 文
と同じで、JavaScript
では、代入できません。
Ruby
if 文
# Ruby
fruit = 'みかん';
if fruit == 'みかん'
p 'orange'
else
p 'ないよ'
end
=> "orange"
代入
Ruby
だと、代入できます。
# Ruby
fruit = 'みかん';
result = if fruit == 'みかん'
'orange'
else
'ないよ'
end
p result
=> "orange"
自己代入
こんな事もできます。
# Ruby
fruit = 'みかん'
result = '果物: '
result += if fruit == 'みかん'
'orange'
else
'ないよ'
end
p result
=> "果物: orange"
JavaScript
if 文
// JavaScript
const fruit = "みかん";
if (fruit == "みかん") {
console.log("orange");
} else {
console.log("ないよ");
}
> orange
代入できない
// JavaScript
const fruit = "みかん";
const result = if (fruit == "みかん") {
"orange";
} else {
"ないよ";
}
console.log(result);
SyntaxError
SyntaxError
になります。
const result = if (fruit == "みかん") {
^^
SyntaxError: Unexpected token if
OK
// JavaScript
const fruit = "みかん";
let result = "果物";
if (fruit == 'みかん') {
result = "orange";
} else {
result = "ないよ";
}
console.log(result);
> orange