Skip to content

DNET_ECMAScript

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

ECMAScript

概要

現在のJavaScriptの仕様

経緯

  • ECMA Internationalが、ECMAScript(ECMA-262)規格を策定、標準化。
  • ECMA : European Computer Manufacturers Association

バージョン

  • 旧JavaScript(ES5)
  • ECMAScript2015(ES2015、ES6)
  • ECMAScript2016(ES2016、ES7)

特徴

インタプリタ型のスクリプト言語

※ コンパイル型のスクリプト言語も存在する。
※ スクリプト言語の意味は、簡易的なプログラミング言語全般

オブジェクト指向

Reactなどではよく使うが、最近は、SFCで書くケースが多いかも。

基本的な記述方法

  • 大文字 / 小文字が区別される。

  • セミコロン(;)は、コンテキストによって補完する。

  • 文中に空白改行タブを含めることが可能
    (...と言うか無視され、これによりminificationが可能)。

  • 変数定義

    • グローバルもローカルもvarを使用。

    • varを省略可能

      • 最初に登場したモノにvarを補完
      • 省略時、グローバルとローカルではグローバルが優先される。
    • letはブロック・スコープ(推奨)

    • 基本型と参照型がある。

      • 基本型:数値、文字列、真偽型
      • 参照型:配列、オブジェクト、関数
    • 型が柔軟
      ある意味、VBのバリアント型のような感じ。

    • 文字列

      • シングル・クォーテーションかダブル・クォーテーションの何れかで囲む。
      • ¥(バックスラッシュ)でエスケープして、エスケープ・シーケンスにする。
# 文字 エスケープ・シーケンス
1 シングル・クォーテーション \'
2 ダブル・クォーテーション \"
3 バック・スラッシュ \\
4 改行 \n
5 リターン \r
6 タブ \t
7 改ページ \f
8 バックスペース \b

詳細

letとconst

varより、letとconstがお薦めらしい。

参考(letとconst)

スプレッド演算子

スプレッド演算子は、

  • setStateメソッドの引数を作成する場合(Reactを参照)

  • propsを下位のComponentに渡す場合(Reactの該当節を参照)

  • Reducersクラス・メソッドの戻り値を作成する場合(Reduxの該当節を参照)

などを行う場合にも使える。

参考(スプレッド演算子)

ArrayBuffer

  • JavaScriptでバイナリを扱うために生まれた。
  • 画像・音声処理などで利用されている。

参考(ArrayBuffer)

const buf  = new ArrayBuffer(100); // メモリ空間の確保
const view = new Uint8Array(buf);  // 1行めで確保されたメモリ空間へアクセスするための型付き配列
view[0] = 0x12; // bufの0番めに書き込んでいるのと同義

参考

  • ECMAScript - Wikipedia
    https://ja.wikipedia.org/wiki/ECMAScript

  • ES6 チートシート | POSTD
    https://postd.cc/es6-cheatsheet/

  • 現代的JavaScriptおれおれAdvent Calendar2017やります。ひとりで。 | Ginpen.com
    https://ginpen.com/2017/12/01/modern-javascript-ginpei-advent-calendar-2017/

    • Babelを使って現代的JavaScriptを始める。
    • varよりすごいletとconst。
    • アロー関数でさくさくコールバック。
    • JavaScript待望のクラス。
    • 華麗にgetterとsetterを使いたい。
    • メソッドをメソッドっぽく定義しよう。
    • 動的にプロパティ名を設定できるようになりました。
    • 引数の初期値って便利だよね。
    • 累乗演算子 ** って知ってる?
    • 非同期やるならPromiseでらくらく。
    • 非同期やるならasync/awaitでもっとらくらく。
    • テンプレート記法で簡単文字列組み立て。
    • テンプレートを自作しよう
    • 分割代入、画期的な機能。
    • 分割代入、配列も画期的。
    • 分割代入と逆に、プロパティを短く定義するやつ。
    • 分割代入や引数の「残り全部」を持ってくるやつ……。
    • 配列を「開いて」使うスプレッド演算子。
    • データ保持ならObjectよりMapの方が良いの?
    • 値だけ覚えておくならSetという手が。
    • WeakMap、WeakSetで「弱い参照」を使えるようになったぞ。
    • イテレータとfor-of文で配列以外もぐーるぐる。
    • ジェネレータと自作イテレータで各種オブジェクトもぐーるぐる。
    • ES6とES2015に違いはないです。

ECMAScriptと対応状況

旧JavaScript(ES5)

ECMAScript2015(ES2015、ES6)

ECMAScript2016(ES2016、ES7)

移行メモ

  • 「ECMA : European Computer Manufacture Association」は正式名称 「European Computer Manufacturers Association」に修正した。
  • 元 Wiki の [[Javascript]](小文字 s)はリンク先のページが元 Wiki 側に 存在しない(リンク切れ)ため、移行済みの JavaScript を指すようにした。
  • 同名の見出し(「参考」)が複数あり GitHub Wiki でアンカが衝突するため、 括弧で文脈を補って一意にした。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。

Tags: 移行, ECMAScript, JavaScript, ES6, ES2015, let, const, スプレッド演算子, ArrayBuffer

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally