JavaScript

[クイズ]javascriptと仲良くなるための一歩 第14話「Boolean」

問題

第1問

b = true
switch (b) {
  case true:
    "T"
    break;
  case false:
    "F"
    break;
  default:
    "hoge"
}
//=> ?

第2問

b = new Boolean(true)
switch (b) {
  case true:
    "T"
    break;
  case false:
    "F"
    break;
  default:
    "hoge"
}
//=> ?

:mouse:
:cow:
:tiger:
:rabbit:
:dragon_face:
:snake:
:horse:
:sheep:
:monkey_face:
:bird:
:dog:
:boar:
:mouse:
:cow:
:tiger:
:rabbit:
:dragon_face:
:snake:
:horse:
:sheep:
:monkey_face:
:bird:
:dog:
:boar:

答え

第1問

b = true
switch (b) {
  case true:
    "T";
    break;
  case false:
    "F";
    break;
  default:
    "hoge";
}
//=> T

第2問

b = new Boolean(true)
switch (b) {
  case true:
    "T";
    break;
  case false:
    "F";
    break;
  default:
    "hoge";
}
//=> "hoge"

ちょっと解説

switch文で隠蔽される同値比較演算は型変換をしない===演算である。

b = true
b === true
//=> true

b = Boolean(true)
b == true
//==> true

b = new Boolean(true)
b === true
//=> false