値のデフォルト値

undefined にデフォルト値を設定

存在しないメンバを取得しようとすると undefined が返される。||を使ってデフォルト値を設定することができる。

flight.departure;  // undefined
flight.departure || "None";

サンプル

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript">
    <!--
    var flight = {    
      airline: "Oceanic",
      number: 815
    };
    document.open();
    document.write(flight.airline + '<br>');
    document.write(flight.departure + '<br>');
    document.write(flight.departure || "None" + '<br>');
    document.close();
    // -->
   </script>	
</head>
<body>
</body>
</html>

出力結果

Oceanic
undefined
None

TypeError の回避

undefined に対してプロパティを取得すると TypeError 例外となる。これは && 演算子にて回避できる。

flight.departure.time;  // TypeError
flight.departure && flight.departure.time;

サンプル

    <script type="text/javascript">
    <!--
    var flight = {    
      airline: "Oceanic",
      number: 815
    };
    document.open();
    document.write(flight.airline + '<br>');
    // document.write(flight.departure.time + '<br>'); TypeErroe!!
    document.write(flight.departure && flight.departure.time + '<br>');
    document.close();
    // -->
   </script>

出力結果

Oceanic
undefined