B-Teck!

お仕事からゲームまで幅広く

【本】小説 君の名は。を読んだ

小説 君の名は。 (角川文庫)

小説 君の名は。 (角川文庫)

先日のテレビ放映でようやく映画版に触れて、きれいな新海誠を見て心が浄化されたので、
プライムリーディングに来ていてタダで読めたので小説も読んでみた。

基本的なストーリーラインは映画と全く同じで、特筆する点は特になかった。
でも、それなのに読了後の感覚が映画視聴後と異なっていたのは、
小説ではキャラクターの心情が多く描かれていたからかなと思う。

映画視聴時は、困難に立ち向かう二人を外から見るという受動的な体験だったけれど、
小説はそれぞれの心の内が描かれ、なぜ、どう考えてその行動を起こしたのかを見ることができる。
これによって、主人公二人に対して、映画を見ているときよりも深い没入感を得られ、
主観的に物語を追うことができた。

映画版で描かれていた糸守の美しい風景や、一種神秘的とも言える彗星の降る夜の情景は、
言葉で語られるので物足りない面もある。
ただ、映画で見た情景を思い起こすには十分な描写をされているので、
映画を視聴済みであれば問題ないように思う。

一度映画を見て、あの世界観にもう一度浸りたいと思った人や、
話を整理しながら追い直したい人が読むと納得と満足できると思います。

【JavaScript】アロー関数

  • アロー関数のthisは定義した場所のthisで固定される
this.val = `global`;

let obj1 = {
    val: 'obj1',
    print:function(){
      console.log(this.val);
    },
    printAllow:() => {
      console.log(this.val);
    }
}

// obj1のthisを参照するので
// obj1が出力される
obj1.print();

// 定義した場所の外側のthisを参照するので
// globalが出力される
obj1.printAllow();
  • アロー関数はargumentsオブジェクトを持っていないので残余引数(rest parameters)で代用する
const restParamSample = (a,b,...r)=>{
    return console.log(a, b, r);
};
restParamSample(1,1,4,5,1,4);  //1 1  4, 5, 1, 4 

【JavaScript】スプレッド演算子

配列の展開

const value = [2, 3, 1, 4, 5];
console.log(Math.max(...value));

シャローコピー

// 配列の複製
let a = [1, 2, 3];
let b = [...a];
console.log(b); //[ 1, 2, 3 ]

// シャローコピーなので多次元配列やオブジェクト等は影響を受けてしまう
let c = [[1], [2], [3]];
let d = [...c];
c[0][0] = 0;
console.log(c); // [ [ 0 ], [ 2 ], [ 3 ] ]

配列の連結

let a = [0, 1, 2];
let b = [3, 4, 5];
let c = [...a, ...b];

console.log(c); // [ 0, 1, 2, 3, 4, 5 ]
a.push(...b);
console.log(a); // [ 0, 1, 2, 3, 4, 5 ]

配列の分割代入

let [a, ...other] = [1, 2, 3];
console.log(a, other); // 1 [ 2, 3 ]

iterableなオブジェクトを展開できる

String、NodeList、HTMLCollection等…

let sample = "sample";
console.log([...sample]); // [ 's', 'a', 'm', 'p', 'l', 'e' ]