-
-
Notifications
You must be signed in to change notification settings - Fork 224
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
operator/演算子 #32
Comments
特に四則演算を説明するには、暗黙的な型変換と明示的な型変換について事前に知っていないと難しそう。 #53 一つ具体的でES2015ではまる可能性が高いものとして、 Symbol() + "文字列"; はエラーで String(Symbol()) +"文字列" ならOKであるというのは、暗黙的な型変換に頼っては行けない理由の一つ。 |
話の大きな流れとしては、 演算子 -> 暗黙の型変換 -> 明示的な型変換 |
やたら大量にでてくるのでグループ毎に簡易なまとめをもうけるのが良さそうな気がする |
基本的に IEEE 754 なので、IEEE 754に簡単に触れるのがいい気がするけど、 |
分類はこれでやるのが良さそう。 12 ECMAScript Language: Expressions 12.1 Identifiers #32 (comment) へ加えた |
これは紙面的な作りと、ウェブ向けの作りがあったほうがよいなと思った。 |
等価性の比較とその使いどころ - JavaScript | MDN
|
見間違いやすい演算子の例が欲しいな。 |
Effective JavaScriptの第1章が浮動小数点数とかNaNの話なので参考になりそう |
条件演算子と短絡評価についてはからめて話をしたい気がする。 const と 条件演算子 と 短絡評価。 長期的には、この部分がデフォルト引数とかに繋がる気がする |
特殊な単項演算子についてはここで説明するのはやめました。 以下は草案の文章 単項演算子(特殊)delete演算子オブジェクトのプロパティ または 配列の指定した添字を削除する。 var obj = { key: "value" };
delete obj.key;
console.log(obj.key); // => undefined var array = [5, 10];
delete array[0];
console.log(array[0]); // => undefined
console.log(array[1]); // => 10 変数を削除する演算子ではない。 var foo = "val";
delete foo; // => Error typeof演算子説明済み。プリミティブとオブジェクトの判定について。 typeof "value"; // => "string"
typeof 42; // => "number" void演算子
void 0;// => undefined 関係演算子in演算子for...in文と同じ。 var object = { "key": "value" };
"key" in object; // => true
Reflect.has(object, "key"); // => true
object.hasOwnProperty("key"); // => true |
https://asciidwango.github.io/js-primer/basic/operator/ landed.
ひとまず目的は達成したので閉じます。 |
|
Operatorが長すぎる問題 |
#17 基本文法
演算子について
+
)-
)*
)/
)%
)**
)+
)-
)++
)--
)==
)!=
)===
)!==
)>
)>=
)<
)<=
)&
)^
)~
)<<
)>>
)>>>
)&&
)||
)!
)- [ ] 単項演算子(特殊)
- delete演算子
- typeof演算子
- void演算子
- [ ] 関係演算子
- in演算子
- instanceof演算子
typeof()
とかけるとけど、これは()
という演算子とtypeof演算子が組み合わさっているだけ = 関数ではない()
を使う||
は 0 がfalsyであることに気をつける必要がある== null
のみ== null
は === null && === undefinedという意味+= 1
-= 1
+
は文字列結合としても使える+
は数字と文字列のみとする+
は文字列を数字に変換する+
は Number(string) にする-
は数字に変換する-
を文字列に使うのはハック的なやりかた!
は真偽値を反転させる!
は評価した値を反転ので、暗黙的な型変換が行われる[[class]]
とtoStringの問題/
と正規表現リテラルとコメントは紛らわしいという問題があるnew
とかin
、...
演算子はどうするか?in
演算子はプロトタイプチェーン...
はspread の話でまとめたい+0
と-0
は異なるObject.is
では判定できる**
*=/=%=+=-=<<=>>=>>>=&=^=|=**=
演算子はJavaScriptの歴史が詰まった感じなので、色々だけここでまとめられるものはまとめたい。
演算子は検索がしにくいのもあるため、このページに書いてあったような気がするという感じにまとめたい
The text was updated successfully, but these errors were encountered: