1. esehara@github

    Posted

    esehara@github
Changes in title
+老害と言われないためのECMA6勉強会
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,56 @@
+# はじめに
+
+だいたい昔からJavaScriptを触ってたりすると、`ECMA-262 Edition 5.1`に慣れきってしまって、もうそれでいいじゃんという雰囲気になったりする。しかし、既に`5.1`だけを使うのは老害なのではないか(はっきりとは断言しない)という危機感によって、今回は`ECMAScript 2015`を勉強しようという話になった。
+
+---
+
+# なぜ`5.1`は老害なのか
+
+[<img width="1638" alt="01.png" src="https://qiita-image-store.s3.amazonaws.com/0/1036/83b57021-afb7-7289-8b5c-722455be39af.png">](https://babeljs.io/)
+
+まず最初にBabelによって、`ECMA Script2015`を無理矢理`5.1`にすることが可能になった。その後、段々と対応ブラウザが増えつつあり、今後起きかわる可能性がある。これはプロダクトの都合。プログラマーとしては格段に書きやすくなった。
+
+---
+
+# 参考資料
+[![book.jpg](https://qiita-image-store.s3.amazonaws.com/0/1036/56ae1dd9-1d68-8962-5503-2b855aca435c.jpeg)](https://www.amazon.co.jp/dp/477418411X/)
+
+2016年11月に出版されたので、とにかく`ECMAScript 2015`の対応は早かった。本の内容も、めくってみた感じだと、それほど悪くない印象がある。
+
+---
+
+# 参考資料2
+
+## [はてな教科書 JavaScript 編](https://hatena.github.io/Hatena-Textbook-JavaScript/)
+
+無料で見れる研修テキスト。はてななので、それほど間違っていないことを期待したい。
+
+---
+
+# 地道に`let`からやっていく
+
+だいたいの変数宣言は`var`から`let`に起きかえることが可能。
+
+理由としては、殆どの変数宣言はスコープ内で使われるものでしかなく、`let`はスコープから脱出すると、その変数が解放される。以下は「はてな」の教科書から取ってきた実例。
+
+```js
+if (true) { let x = 100; }
+console.log(x);
+// ReferenceError: x is not defined
+```
+
+余程スコープを横断したいときには`var`を使うと便利ではあるんだが……
+
+あと地味に重要な点としては、`let`を使うと、同じ変数が宣言できなくなる。このことによって、宣言しようとした変数をかぶらせない、といった配慮が可能になるのだが、そもそも**二重に宣言してしまいそうになるコードを書くほうが悪い**ということになる。
+
+# 地道に`const`からやっていく
+
+`const`は見た目の通り、定数を宣言するときに使う。この場合の定数とは「再代入不可能」ということである。ただし、その変数に対して再代入を禁止するという意味であって、代入された値の不変性を保証するものではない。
+
+```js
+const hoge = [1, 2, 3];
+hoge[0] = "foobar";
+console.log(hoge);
+```
+
+通常、この手