ES2015_003

■テンプレートリテラル

「`」(バッククォート)の使用

let name = "金太郎";
const message = `私は${name}です。`;
console.log(message);    // 私は金太郎です。


「`」(バッククォート)での改行とスペース

let message = `私は金太郎です。
  昔話に出演してます。`;
console.log(message);

/*
私は金太郎です。
  昔話に出演してます。
*/


■文字列としての数値の扱い

let x = 10 + '20';
console.log(x);  // 120  '+'は文字列の連結として機能する

let y = 10 * '20';
console.log(y);  // 2000  '*'は数値として計算される。


let x = 10 + Number('20');  //  文字列'20'を数値に変換している。
console.log(x);  // 30


■論理値

true と false がある。

 

■シンボル

シンボルはプリミティブで、リテラルによる表現をもちません。

シンボルは Symbol() コンストラクタを使って作成します。

制作したシンボルは他のシンボルとは同じになりません。


const x = Symbol();
const y = Symbol();

console.log(x);  // Symbol()
console.log(x === y);  // false

 

■null

nullの設定


■undefined

undefined はまだ値が指定されていない事を表す。

 

■オブジェクト(object)

オブジェクト型は複数の値や複雑な値を表す事ができ、処理によって値を変化する事が出来る。


オブジェクトのリテラル表現には、「{...}」を使います。

const obj = {};

obj.color = "赤";
obj["Luky Number"] = 7;
const NAME = Symbol();
obj[NAME] = "金太郎"

console.log(obj.color);  // 赤
console.log(obj["color"]);  // 赤
console.log(obj["Luky Number"]);  // 7
console.log(obj[NAME]);  // 金太郎

console.log(obj);  // { color: '赤', 'Luky Number': 7 }   Symbolで指定したものは表示されない。


オブジェクトは同じオブジェクトを指しているから定数(const)で宣言します。


const dat = {
    name: '金太郎',
    age: 20
}


const dat2 = {
    name: 'A1',
    param: {
        age: 30,
        tole: 180,
        adr: 'Japan'
    }
}

console.log(dat2);
/*
{ name: 'A1',
  param:
  {  age: 30,
    tole: 180,
    adr: 'Japan'
  }
}
*/

console.log(dat2.param.age);
/*
30
*/

 


■数値、文字列、論理値に対応するオブジェクト


const s = "abc";
const s2 = s.toUpperCase();
console.log(s2);  // ABC

sはプレミティブで文字列型ですが、Stringオブジェクトを一時的に生成しているのです。
関数が呼び出されると、このオブジェクトはすぐに破棄される。
オブジェクトは一旦、外れてしまう。

String(s).toUpperCase();  // と同じ

呼び出された後は、プリミティブの's'となる。

 

■配列(array)

const x = [1, 3, 7, 5, 8];

const y = [1, 'abc', 3;

const z = [ {name: '金太郎', age: 18 }, {name: '銀太郎', age: 30}];

const w = [ [12, 'ab'], [3, 'dr']];


console.log(w[1,0]);  // 3

console.log(x[0]);  // 1