41. ZP
yo
[?] 'Allo dynamis! What would you like to do? Get me out
of here!
!
!
_-----_
| | .---------------------------------------.
|--(o)--| | Bye from us! Chat soon. |
`---------´ | |
( _´U`_ ) | The Yeoman Team |
/___A___ | https://github.com/yeoman/yeoman#team |
| ~ | '---------------------------------------'
__'.___.'__
´ ` |° ´ Y `
:0./ֶָׁׄ׃׳ױֲ⳿גֶֻ蘠湡ז؝وٝسٓ؎ٝخ٦ٕ
53. ブロックスコープ (let, const)
ブロックスコープ変数と定数
IE11 でもサポート!
Safari は const でも変数になる
const は仕様では let 同様ブロッ
クスコープの定数だが現在の実装
は var 同様のブロックスコープ
54. let
{
// let 定義: ブロックスコープ
let a = 1, b = 10;
// let 式・文: let (...) に続く式・文中だけで有効
let (a = 100, c = 300) console.log(a); // - 100
// for 文などでの let
for (let a=0; a3; a++) {
console.log(a+b); // - 10, 11, 12
}
console.log(a); // - 1
}
console.log(a); // × ReferenceError: a is not
// defined
60. Arrow Function における this
// this は矢印関数を囲むスコープのものにバインド
// コールバック利用時に self=this とか不要になる
function Person(){
this.age = 0;
setInterval(() = {
this.age++; // this は Person オブジェクト
}, 1000);
}
var p = new Person();
!
// 注: strict mode でも this はレキシカルに bind
// 済みとして振る舞うので undefined にならない
https://developer.mozilla.org/docs/Web/JavaScript/Reference/arrow_functions