Top / JavaScriptとJSONとECMAScript
HTML convert time: 0.079 sec.

JavaScriptとJSONとECMAScript

Last-modified: 2013-05-21 (火) 18:28:28

趣旨

はやりのnode.jsで色々やっていて、ドキュメントが散らかりすぎて大変だったのでまとめる。

また、ここでの記述は2013/05時点のものなので、後々は陳腐化していくと思います。
ここで使われる"最新"や"安定板"の様な時系列にかかわる言葉は2013/05時点のものとして解釈してください。

それぞれの概要

  • JavaScript
    • https://developer.mozilla.org/ja/docs/JavaScript[外部リンク]
    • 狭義の意味でMozillaが作ったECMAScriptの実装の一つ
    • 文脈によりECMAScriptの各実装を含む表現になることあり
    • ここではMozilla以外の実装も含めての意味で使用

JavaScriptオブジェクトはJSONとイコールじゃない

全部をやるのは無理なので、気になって調べたとこ周辺だけ。

  • JavaScriptのオブジェクトリテラル
    • http://ecma-international.org/ecma-262/5.1/#sec-11.1.5[外部リンク]
    • キーに使用できるもの
      • コード上での文字列
      • 文字列リテラル
      • 数値
    • ケツカンマ
      • ECMAScript 3rd => NG (実装の拡張でできるものもある)
      • ECMAScript 5th => OK
    • サンプルコード
      {                  // PropertyName :
        alice : "value", //  IdentifierName
        "bob" : "value", //  StringLiteral
        100   : "value", //  NumericLiteral
      }
  • JSONのリテラル
    • http://www.ietf.org/rfc/rfc4627.txt[外部リンク]
    • ファイル全体に散らばってるので抜粋
      object = begin-object [ member *( value-separator member ) ] end-object
      member = string name-separator value
      string = quotation-mark *char quotation-mark
      quotation-mark = %x22      ; "
    • キーに使用できるもの
      • 文字列リテラル
    • ケツカンマNG
    • サンプルコード
      {
        "alice" : "value",
        "bob"   : "value",
        "100"   : "value"
      }

ECMAScritp 5th の対応状況

動かして調べたわけではなく、ドキュメントを漁って宣言していたかどうかだけです。

Mozilla FireFox11.0? <=https://developer.mozilla.org/ja/docs/JavaScript/ECMAScript_5_support_in_Mozilla[外部リンク]
変更ログの2012/02/25が最初のサポート宣言
日付に合うリリースバージョンが11.0
Internet Explorer9 <=http://download.microsoft.com/download/D/1/0/D1047514-A38A-4F27-93D1-BAA6F766655E/20101025_OST_kasugai.pdf[外部リンク]
Safari (OS X)6 <=https://developer.apple.com/jp/technologies/safari/[外部リンク]
Opera11.60 <=原文 http://my.opera.com/desktopteam/blog/2011/11/04/opera-11-60[外部リンク]
和訳 http://opera-users.jp/translations/weekly/2011-11-04-opera-11-60/[外部リンク]
Google Chrome?早い段階から対応しているようだけれど、リリースを上手く追えなかった