演算子 (オペレーター)
今度は演算子について調べましょうね。
四則演算子については[変数]にあります。
論理演算子
論理演算子は真と偽のバリューを持ってる演算子です。
種類
AND(&,&&)
OR(|,||)
XOR(^)
AND演算子は全てのバリューが真の時に真を返します。
OR演算子はバリューの中で一つでも真だ場合真を返します。
XOR演算子は互いにバリューが違う時真を返し、互いにバリューが同じだったら偽を返します。 真のバリューはtrue (1)、偽のバリューはfalse (0) です。
下の表を見て下さい。
変数Aのバリュ | 変数Bのバリュ | AND (&, &&) | OR (|, ||) | XOR(^) |
0 (false) | 0 (false) | 0 (false) | 0 (false) | 0 (false) |
0 (false) | 1 (true) | 0 (false) | 1 (true) | 1 (true) |
1 (true) | 0 (false) | 0 (false) | 1 (true) | 1 (true) |
1 (true) | 1 (true) | 1 (true) | 1 (true) | 0 (false) |
上の表を見るとAが偽、Bが偽の時 AND演算子は 偽を返します、OR演算子も 偽、 XOR演算子も偽を返すんだねと理解して下さい。
理由は二つも真の時AND演算子は真を返し、OR演算子は一つもでも真なら真を返し、XOR演算子は互いにバリューが違う時だけ真を返しますからですね。
増減演算子
増減演算子には2個の種類があります。
増加と減少があります。
増加は++,減少は--です。
++は1を増加、--は1を減少します。
aという変数があったと言って
前にあるか後ろにあるかによって意味は違います。
例え、
++a, a++, --a, a--
上のよう使いますが、
++aはまず、自分のバリューを1増加して次を同います。
a++ は 먼저 다른 연산을 한후 자신을 1 증가 시킵니다.
a++はまず次を行なってから自分のバリューを1減少します。
では、ソースで見てみましょう。
<!DOCTYPE html> <html> <head> <title>coreasur - JavaScript</title> <script> a = 10; b = ++a; document.write(b); </script> </head> <body> </body> </html>
結果

ソース説明
変数aに10を代入した後、変数に++aを代入します。
++が前にあるとまず、自分のバリューを1増加して次を行います。つまり、++aの時は
変数aのバリューが10だったのでまず、自分のバリューを1増加し、バリューが11になります。
その後、11がバリューが変数bに代入されます。
では、今度は++が変数aの後ろにあるとどうなるかみてみましょう。
<!DOCTYPE html> <html> <head> <title>coreasur - JavaScript</title> <script> a = 10; b = a++; document.write(b); </script> </head> <body> </body> </html>
結果

ソース説明
上のソースを見ると 変数aに10を代入したあと 変数bにa++を代入します。
++が後ろにあるとまず、次の演算をしてから自分のバリューに1を増加します。
つまり、a++の時
aのバリューな10が関数bに代入されてから、自分のバリューに1を増加します。なので
結果は10になります。
論理否定 !
論理否定 ! 演算子は true(真)を false(偽)に。。 逆に false(偽)は true(真)に 変わります。
では、次のソースをみてから確認しましょう。
<!DOCTYPE html> <html> <head> <title>coreasur - JavaScript</title> <script> a = true; b = !a; document.write(b); </script> </head> <body> </body> </html>
結果

ソース説明
変数aにtrueを代入しました。文字列じゃないんで""は使いません。
そして変数bに !aを代入しました。 !は反対のバリューに変更するんで、trueだったバリューがfalseに変更されてから代入されます。
なので変数bのバリューはfalseになります。
関係演算子
関係演算子の秋類は
記号 | 意味 |
< | 大きい |
<= | 同じまたは大きい |
> | 小さい |
> | 同じまたは小さい |
== または === | 同じ |
!= または !== | 同じじゃない |
つまり、3 < 4という式があると falseを返します。
逆に 4 < 3 という式があると 真なtrueを返します。
同じ意味の 記号で ==と===があります。互いに同じバリューだったらtrue(真)を返します。
同じじゃないといみの !=と !== があります。 互いに同じじゃないバリューの場合false(偽)を返します。
==と===の違いはなんでしょうか、そして!=と!==の違いはなんでしょうか。
==は変数のバリューだけ同じだったらtrue(真)を返しますが、===は変数のタイプまで同じであってこそtrue(真)を返します。
!=は変数のバリューが違うとtrue(真)ですが、 !==は変数バリューとタイプまで違うことを確認します。
ではソースで確認しましょう。
<!DOCTYPE html> <html> <head> <title>coreasur - JavaScript</title> <script> document.write("10==1 は "+(10==1)); document.write("<br>"); document.write("<br>"); document.write("10!=10 は "+(10!=10)); document.write("<br>"); document.write("<br>"); document.write("20>40 は "+(20>40)); document.write("<br>"); document.write("<br>"); document.write("20<40 は "+(20<40)); document.write("<br>"); document.write("<br>"); document.write("50>=40 は "+(50>=40)); document.write("<br>"); document.write("<br>"); document.write("20<=20 は "+(20>=20)); document.write("<br>"); document.write("<br>"); document.write("40===40 は "+(40===40)); document.write("<br>"); document.write("<br>"); document.write("'40'===40 は "+('40'===40)); document.write("<br>"); document.write("<br>"); document.write("40==40 は "+(40==40)); document.write("<br>"); document.write("<br>"); document.write("'40'==40 は "+('40'==40)); document.write("<br>"); document.write("<br>"); document.write("30!==40 は "+(30!==40)); document.write("<br>"); document.write("<br>"); document.write("'30'!==40 は "+('30'!==40)); document.write("<br>"); document.write("<br>"); document.write("30!=40 は "+(30!=40)); document.write("<br>"); document.write("<br>"); document.write("'30'!=40 は "+('30'!=40)); document.write("<br>"); document.write("<br>"); document.write("30!==40 は "+('40'!==40)); </script> </head> <body> </body> </html>
結果

条件演算子
変数 = 条件?true:false;
変数 = 条件?true:false; 条件が trueなら trueを 代入し falseなら falseを 変数に代入します。
例えば、
number = 10 > 5 ? "number" : "string";
上のコードを見ると10が5より大きいとnumberという文字列をnumber変数に代入し、じゃないとstringという文字列を代入してといういみです。
逆に
number = 10 < 5 ? "number" : "string";
10 < 5がfalse(偽)だったら文字列stringが代入されます。
<!DOCTYPE html> <html> <head> <title>coreasur - JavaScript</title> <script> number = 10 > 5 ? 10 : 5; document.write(number); document.write("<br>"); number = 10 < 5 ? 10 : 5; document.write(number); </script> </head> <body> </body> </html>
結果

では次の講座へ