asciidwango / js-primer

:book: JavaScript Primer - 迷わないための入門書
https://jsprimer.net
Creative Commons Attribution 4.0 International
2.34k stars 224 forks source link

2017-07-21 MTGアジェンダ #263

Closed azu closed 7 years ago

azu commented 7 years ago

2017年7月21日のミーティングアジェンダを書く場所

lacolaco commented 7 years ago

237 #259

JSON.stringify の例外的な挙動をするオブジェクトの扱い

JSON.parse の第2引数に触れるかどうか 使うユースケースあんまりないと思うんだけど、リファレンス的に触れるか流すかの判断

あとajaxappのJSON.parseがtry-catchされてないからしたほうがよさそう

azu commented 7 years ago

配列 #49 はあと少し。

次は 関数をやる予定 https://github.com/asciidwango/js-primer/issues/112

関数どういう流れでやるか考えたい

azu commented 7 years ago

typoとか見つけたら簡単にIssue切れます。

image 書いた文章をレビューしてGitHubにIssueを切るためのGitBookプラグイン | Web Scratch

azu commented 7 years ago

JSON

JSONの章でどこまで扱うかについて。

azu commented 7 years ago
lacolaco commented 7 years ago
azu commented 7 years ago

flags https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags

azu commented 7 years ago
JSON.stringify({ get a(){ return 1; }})
// "{"a":1}"

getterは出てこないとは単純に言えないのか

クラスのgetterはでてこない。

lacolaco commented 7 years ago
class Bar {
  get bar() { return "bar" }
}
var bar = new Bar()
JSON.stringify(bar)
"{}"
lacolaco commented 7 years ago

代表的な変換についての表と、サンプルコード

azu commented 7 years ago

JSONは外部とのやり取りに使うという用途を書く。

lacolaco commented 7 years ago

JSONのユースケース

lacolaco commented 7 years ago

JSON.parseの第2引数は扱わない、ということで

lacolaco commented 7 years ago

// replacer引数を使わない場合はnullを渡すのが一般的です

azu commented 7 years ago

JSON.stringify()

再帰的になってるときに例外を投げる。

azu commented 7 years ago

JSONの次はMap/Setの章。

http://exploringjs.com/es6/

lacolaco commented 7 years ago

https://gist.github.com/uupaa/8d2e5b19c1a1ef267ec2

azu commented 7 years ago

http://exploringjs.com/es6/ch_maps-sets.html#sec_weakset

lacolaco commented 7 years ago

EventEmitterとWeakMap

azu commented 7 years ago

https://github.com/R1ZZU/events2

lacolaco commented 7 years ago

メモリリークしないための仕組み

いろんな言語にあるからESにも入りました

azu commented 7 years ago

関数どうするか

コラム押し?

lacolaco commented 7 years ago

関数の章は実はクラスの章なのでは?

azu commented 7 years ago

関数で => クラスっぽい クラス => 実は関数では

という流れ

azu commented 7 years ago

this は多くの場合 クラスで使う。 関数でthisを使うケース jQuery, Vueなど

$.each(function (){
   this // <= $自体
})

みたいなケース。Arrow Functionを使う。

lacolaco commented 7 years ago

argumentsに触れるなら関数の章しかない?

azu commented 7 years ago

callapply について触れる。

azu commented 7 years ago

https://www.softel.co.jp/blogs/tech/archives/1377 とspread operator

lacolaco commented 7 years ago

bind

azu commented 7 years ago

callapplybind と Arrow Function.

lacolaco commented 7 years ago

::this はstage0 https://github.com/tc39/proposals/blob/master/stage-0-proposals.md

azu commented 7 years ago

https://www.amazon.co.jp/dp/B00ESXY9MA/

azu commented 7 years ago

スコープの章

クラス

azu commented 7 years ago

hoisting はコラム的な外伝的な

lacolaco commented 7 years ago

サンプルコードがなんで var なんだ ってツッコミが入りそうだからconst/let で書いておいたほうがよさそう

azu commented 7 years ago

なぜサンプルコードがconstではないのか

azu commented 7 years ago

const に書き換えよう

lacolaco commented 7 years ago

そうなるとhoistingは完全にコラムで良くなる

lacolaco commented 7 years ago

lexical

azu commented 7 years ago

const は レキシカル 見た目どおりのコードになるので、積極的に使いましょう。

静的スコープ - Wikipedia

azu commented 7 years ago

var は異常

lacolaco commented 7 years ago

他の言語を一応かける人向けのJS本なので、むしろvarの説明を理解してもらうのが難しそう

lacolaco commented 7 years ago

JSON > Map/Set > Date

azu commented 7 years ago

DateはDateオブジェクト、unix time(getTime、ISOのやつで交換可能な例をベースにする

lacolaco commented 7 years ago

YYYY/MM/DD の実装例

lacolaco commented 7 years ago

Symbolは章にならなさそう

lacolaco commented 7 years ago

Date/i18n https://github.com/asciidwango/js-primer/issues/125

azu commented 7 years ago

クラス - stateを持ってる例

azu commented 7 years ago

日付 https://github.com/asciidwango/js-primer/issues/125

azu commented 7 years ago

https://tatsu-zine.com/books/software-g11n