JavaScript ES6 の不思議な書き方

他人のソースコードを読むと、こんな書き方あったんかい!? と驚くことが有ります。

... (スプレッド演算子) で オブジェクト(連想配列)の統合

const hash1 = {
    'color': 'red',
    'shape': 'trapezoid',
};

const hash2 = {
    'color': 'pink',
    'foo': 'bar',
}

const hash3 = {
    ...hash1,
    ...hash2,
};

console.log(hash3);

結果

{ color: 'pink', shape: 'trapezoid', foo: 'bar' }

配列が確かにマージ(統合)できる。 そして、JavaScript では 先頭から実行されるためにも、上記の場合 hash1 と hash2 の値が衝突した時は、後ろに書かれた hash2 が優先される。

なるほど。

!! (not - not) 演算子

! は 論理否定演算子。 !! はというと...? 単純に 型を Boolean にする方法。

let value1 = "HELLO";
console.log(!!value1);

let value2 = 200;
console.log(!!value2);

let value3 = 0;
console.log(!!value3);

let value4 = "";
console.log(!!value4);

結果

true    // value1: "HELLO"
true    // value2: 200
false   // value3: 0
false   // value4: ""

なるほど。

Previous Post Next Post

コメントを追加する