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

条件分岐: if/switch/block #31

Closed
6 tasks done
azu opened this issue May 26, 2016 · 9 comments · Fixed by #69
Closed
6 tasks done

条件分岐: if/switch/block #31

azu opened this issue May 26, 2016 · 9 comments · Fixed by #69

Comments

@azu
Copy link
Collaborator

azu commented May 26, 2016

基本文法 #17


  • if/else/elseif
  • swich
  • { } block
  • space
  • ASI セミコロン自動挿入

ラベルは次のコードが動くという豆知識ぐらいにしか使わない気はする

http:// 

ここは単純に説明するだけだとそうですねって感じがするので、できるだけ実際の細かいユースケースに寄せたい。
とくにswitchとかはなんとなく使うパターンがあるとは思う(アンチパターンになりやすい)

草案

Iterator関連は #68 に分離

@azu azu mentioned this issue May 26, 2016
19 tasks
@azu azu modified the milestone: 7th Meeting Jun 30, 2016
@azu azu changed the title 制御構文 if/for/while/block/space 制御構文 if/while/block/space Jul 1, 2016
@azu
Copy link
Collaborator Author

azu commented Jul 1, 2016

switchがややこしい

最近Reduxとかでswitchを使うケースが増えたけど、使う条件はかなり限定的な気がする。
定数があって処理が1行でreturnできるものみたいな

switch(true) も普通はかかなくてもいい気はする

@azu
Copy link
Collaborator Author

azu commented Jul 1, 2016

ここで初めて が出てくるのかな。
JavaScriptの場合はif文だから、if式ではないというのを上手く伝える事ができると良さそう。

文の中に式は書けるが、式の中に文を書くことはできない(ホント?)とか
値を返すのが式、返さないのが文。(例外がeval 知られてそうで知られてない少し知られてるECMAScript 2015 (ES6)の新機能: Days on the Moon)

  • 仕様の中ではどういう解説なのか読む
  • 文 = ステートメント、式 = Expressionと紐付ける話

@azu azu changed the title 制御構文 if/while/block/space 条件式: if/while/block/space Jul 1, 2016
@azu
Copy link
Collaborator Author

azu commented Jul 1, 2016

switchがそもそもあんまり使われてなかったのは、break忘れとかdefault忘れとか、罠が多かったからというのは大きそう。
今だとLintでわかるようになっているけど。

ただ、switchの中が膨れるのは読みにくいコードの原因なので、switchの使い方としてはそういうのを触れたい。switchの下にコード続けるのはあんまりしないと思うので基本的には #20 関数と組み合わせて使うものななんだよなー。

@twada
Copy link

twada commented Jul 1, 2016

式の中に文を書くことはできない(ホント?)

FunctionExpression (関数式) や SequenceExpression (俗にカンマ演算子というやつ) の中に文を書けてしまいます

@azu
Copy link
Collaborator Author

azu commented Jul 1, 2016

そうですよね。ありがとうございます

@azu azu changed the title 条件式: if/while/block/space 条件分岐: if/while/block/space Jul 1, 2016
@azu
Copy link
Collaborator Author

azu commented Jul 1, 2016

やっぱりここに12.14Conditional Operator ( ? : )#は入れたいな。
演算子でまとめる必要性なさそうな気がしてる。

これとifの違いを含めて、文と式の説明とするのがよさそう。

@azu
Copy link
Collaborator Author

azu commented Jul 1, 2016

? : 仕様的には条件演算子 になるけど、
三項演算子と言われることが多い気はする。
三項演算子って用語をメインにした方がいいのか、条件演算子をメインした方がいいのかが微妙だな。
条件演算子の方が正しいのだろうけど。

? :は条件演算子と呼びます。また <条件式> ? <真式> : <偽式> のように3つの式を使う演算子であることから三項演算子とも呼ばれます。

という感じかな

@azu
Copy link
Collaborator Author

azu commented Jul 1, 2016

"文字列".length ってelementsの数と言ってるのか

The number of elements in the String value represented by this String object.
ECMAScript® 2016 Language Specification

@azu
Copy link
Collaborator Author

azu commented Jul 3, 2016

@azu azu changed the title 条件分岐: if/while/block/space 条件分岐: if/switch/block Jul 3, 2016
@azu azu closed this as completed in #69 Jul 3, 2016
@azu azu mentioned this issue Jul 19, 2016
10 tasks
@azu azu mentioned this issue Aug 22, 2017
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants