Closed azu closed 7 years ago
JSON.stringify
の例外的な挙動をするオブジェクトの扱い
JSON.parse
の第2引数に触れるかどうか
使うユースケースあんまりないと思うんだけど、リファレンス的に触れるか流すかの判断
あとajaxappのJSON.parseがtry-catchされてないからしたほうがよさそう
typoとか見つけたら簡単にIssue切れます。
JSON
JSONの章でどこまで扱うかについて。
JSON.stringify({ get a(){ return 1; }})
// "{"a":1}"
getterは出てこないとは単純に言えないのか
クラスのgetterはでてこない。
class Bar {
get bar() { return "bar" }
}
var bar = new Bar()
JSON.stringify(bar)
"{}"
代表的な変換についての表と、サンプルコード
JSONは外部とのやり取りに使うという用途を書く。
JSONのユースケース
JSON.parseの第2引数は扱わない、ということで
// replacer引数を使わない場合はnullを渡すのが一般的です
JSON.stringify()
再帰的になってるときに例外を投げる。
JSONの次はMap/Setの章。
EventEmitterとWeakMap
メモリリークしないための仕組み
いろんな言語にあるからESにも入りました
関数どうするか
コラム押し?
関数の章は実はクラスの章なのでは?
関数で => クラスっぽい クラス => 実は関数では
という流れ
this
は多くの場合 クラスで使う。
関数でthis
を使うケース jQuery, Vueなど
$.each(function (){
this // <= $自体
})
みたいなケース。Arrow Functionを使う。
argumentsに触れるなら関数の章しかない?
call
と apply
について触れる。
https://www.softel.co.jp/blogs/tech/archives/1377 とspread operator
bind
call
と apply
と bind
と Arrow Function.
hoisting はコラム的な外伝的な
サンプルコードがなんで var なんだ ってツッコミが入りそうだからconst/let で書いておいたほうがよさそう
なぜサンプルコードがconstではないのか
const
に書き換えよう
そうなるとhoistingは完全にコラムで良くなる
lexical
const は レキシカル 見た目どおりのコードになるので、積極的に使いましょう。
var は異常
他の言語を一応かける人向けのJS本なので、むしろvarの説明を理解してもらうのが難しそう
JSON > Map/Set > Date
DateはDateオブジェクト、unix time(getTime、ISOのやつで交換可能な例をベースにする
YYYY/MM/DD
の実装例
Symbolは章にならなさそう
クラス - stateを持ってる例
2017年7月21日のミーティングアジェンダを書く場所