Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[meta] JavaScriptの基本文法 #17

Closed
11 of 19 tasks
azu opened this issue May 8, 2016 · 11 comments
Closed
11 of 19 tasks

[meta] JavaScriptの基本文法 #17

azu opened this issue May 8, 2016 · 11 comments

Comments

@azu
Copy link
Collaborator

azu commented May 8, 2016

#8 で基本文法の章を書くことになったので、基本文法に関するメタIssueです。

Issueの目次のような感じ かつ 基本文法の章にあったほうがいいものをメモって置くIssueです。

この辺でもうある程度書ける


その他の書く候補

  • 基礎文法
    • [meta] function/関数 #112 関数のまとめ
    • Destructuring
    • 関数/Arrow Function
    • Spread Operator
    • Error/Throw
    • クラス
    • 正規表現
    • Generator/Iterable/Iterator
  • ビルトインオブジェクト
    • JSON
    • Date
    • Map/WeakMap
    • Set/WeakSet
    • Symbol
    • Promise
  • Note
    • ECMAScript策定プロセス
    • Reflect API - Proxyとセット
    • Proxy - むずかしそう
    • Unicode - サロゲートペアとか
    • Intl - やるか微妙
@azu
Copy link
Collaborator Author

azu commented Jul 1, 2016

制御構文と演算子はどっちが先だろ?
先に、制御構文は数字だけで進めるのが分かりやすい気もする。
何も説明せずに+ = > < 演算子を使うけど、演算子はプログラミング言語で大体共通だから読めなくはないはず。

@azu
Copy link
Collaborator Author

azu commented Jul 21, 2016

型変換はそれぞれのConstructorを使うので解説順に悩む。
Object, Number, String, ... ごとに説明をするべきなのかなー

@azu azu mentioned this issue Jul 23, 2016
@azu
Copy link
Collaborator Author

azu commented Jul 25, 2016

The Most In-Depth Yet Understandable ES6 Destructuring Tutorial (complete with Assembled Avengers) | Untangled

Destructuring ってものすごい立ち位置が分かりにくい。
shorthandというジャンルな気はするけど

@azu azu mentioned this issue Jul 30, 2016
5 tasks
@azu
Copy link
Collaborator Author

azu commented Aug 6, 2016

ビルトインオブジェクトの話についてどうするか考えないとちょっとダメだなー
どうしてもただのリファレンスになりそうな気がしているから、ビルトインオブジェクトごとにテーマを設けて、それにそって説明していくという話にしないと収集がつかない感じ。

例えば、 NumberとMath #100 なら浮動小数点数 0.1 + 0.2 === 0.3 はなぜ falseなのかを解いて見ましょうとか。

なんでもかんでもArrayを返す関数を作っていくプログラミングスタイルはなぜ起きるのでしょうか?
(こういうの実際どうしてそうした方が安全な感じになるのかって研究あるのかな? モナドとかそういう数学的な話になっていくのかな)
常にオブジェクトを返すプログラミングスタイルと配列を返すスタイルは何が違うのか?とか(0上の値の集合という点では同じだけど、オブジェクトの場合は"次"の定義がないからというのが大きそう)
"次"が決まっているのはiterableが概念そのもので、ArrayもIterableであるとかなんとか

オブジェクトは、JavaScriptがオブジェクトで作られているという話になるのかな。

追記:

  • オブジェクトはオブジェクトの本質的な話
  • Arrayは実用的なプログラミングの話
  • ArrayでEventEmitterの元みたいな操作
  • Math/Numberは浮動小数点数の話 0.1 + 0.2 ≒ 0.3; // true を求める
  • String は ???
  • Booleanは型変換の話でしかないので飛ばす data-type: 型変換 #53

@azu
Copy link
Collaborator Author

azu commented Aug 6, 2016

後は、API一覧を出さなくてもAPI一覧がつかめるというか、調べられる道筋を示せるのがただしい感じはするけど、安易なAPI一覧は楽すぎるのがなー

@azu azu mentioned this issue Aug 9, 2016
@azu
Copy link
Collaborator Author

azu commented Aug 12, 2016

This was referenced Aug 13, 2016
@azu
Copy link
Collaborator Author

azu commented Aug 14, 2016

個人的にこれらが一つのセットであるような感じがするので、これを一つのまとまりとして考えてアウトラインを出す必要がありそう。

関数で知っておきたいことで一通り要素を書いてみたけど、関係することが多い感じ。
this をどこで扱うかがイマイチ決まらない。
個人的にはclassであるとも思うけど、オブジェクトのメソッドでも使えるから悩ましい感じ。
Learning JavaScriptでは、関数のメソッドの話として出してた(classはその後)

@azu
Copy link
Collaborator Author

azu commented Aug 15, 2016

new プリミティブ を避けるためにSymbolはnewできないって面白いなー。
""+ Symbol()がエラーなのも同じような意図なんだろなー

@azu
Copy link
Collaborator Author

azu commented Sep 3, 2016

ここまでで、具体的なAPIは知らないけどコードは書けるようになる気がする。
ここまでの振り返りも兼ねて演習問題的なものがあるといいのかもしれない。

一つ思いついたのは、i18n APIを使って
指定した言語で、入力した金額に消費税を加えて表示するという感じの問題。

言語の一覧から探索(loop)、数字のパース(型変換)、存在の有無(制御構文)、演算子(加算)
みたいな感じにできていいかなとか思った。

https://asciidwango.github.io/js-primer/ajaxapp/entrypoint/ でHTMLの解説があんまりない状態で出てくるので、事前に同じような事があるといいのかも

けど、loopのところがi18n APIだと特にない気がする。

@azu
Copy link
Collaborator Author

azu commented Sep 3, 2016

税込みの金額を出すサンプル
http://jsbin.com/fuwovevaji/edit?js,console

やっぱりループを絡ませることができない…

@azu
Copy link
Collaborator Author

azu commented Jul 26, 2018

[meta] JavaScriptの基本文法 #17

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant