JavaScript式&演算子
8242 ワード
算術演算子
オペランド(または変換結果)がNaN値であれば、算術演算の結果もNaNである.除数0の演算結果は正の無限大または負の無限大であり,0/0の結果はNaNであり,これらの演算はすべてエラーを報告しない.
「+」演算子
1 + 2 // 3
"1" + 2 // "12",
1 + {} // "1[object Object]",
true + true // 2,
2 + null // 2,null 0
2 + undefined // NaN,undefined NaN
演算結果の同期は、次のような演算子の演算順序に依存します.
1 + 2 + "blind mice"; // "3 blind mice"
1 + (2 + "blind mice"); // "12 blind mice"
「++」演算子
式++xの合計はx=x+1と全く同じではありません.xが文字列"1"である場合、++xの結果は数字*2であり、x+1は文字列*"11"である.
関係演算子
“===”(strict equality)
厳密に等しい演算子です.比較プロセスには変換のタイプはありません.比較プロセスは次のようになります.
2つの値のタイプが異なる場合、2つの値は等しくありません.
“==”(equality operator)
2つのオペランドが同じタイプである場合、2つのオペランドは、厳密に等しい規則"=="で比較されます.
1つの値がnullで、もう1つがundeinedの場合、それらは等しい.1つの値が数値で、もう1つが文字列の場合、String->Number変換後に値比較を行います.値がブールタイプの場合、true->1、false->0を変換して値比較します.
"1" == true; // true
比較演算子(<,>,<=,>=)
"11" < "3" // true,
"11" < 3 // false,"11" 11
"one" < 3 // false,"one" NaN
in演算子
in演算子は、左オペランドが文字列であるか、文字列に変換できるか、右オペランドがオブジェクトであることを望んでいます.右側のオブジェクトに左操作数値という属性名がある場合、式はtrueを返します.
var point = { x:1, y:1 };
"x" in point; // true, "x"
"z" in point; // false, "z"
"toString" in point; // true, toString()
var data = [7, 8, 9];
"0" in data; // true, "0"
1 in data; // true,
3 in data; // false, 3
instanceof演算子
式「o instanceof f」を計算するために、JavaScriptはまずf.prototypeを計算し、プロトタイプチェーン(prototype chain)でoを検索し、見つかった場合、oはf(またはfの親)のインスタンスであり、式はtrueを返す.
論理式
論理または(|)
この演算子は、代替式のセットから最初の真値式を選択するためによく使用されます.
// max_width ,
// preferences max_width
// ,
var max = max_width || preferences.max_width || 500;
その他の演算子
delete演算子
deleteは、オブジェクトのプロパティまたは配列要素(メモリを解放する必要はありませんが)を削除するためのメタ演算子です.元の値はundefinedになります.
var o = { x:1, y:2 };
delete o.x;
"x" in o; // false,
var a = [1,2,3];
delete a[2];
2 in a; // false, 2
a.length; // 3, : !!!
void演算子
この演算子は、例えばHTMLの
<a>
要素からJavaScript関数を呼び出す場合など、出力すべきでない値を出力しないようにするために一般的に使用されます.これを正しく行うには、関数が有効な値を返すことはできません.そうしないと、ブラウザはページを空にし、関数の結果だけを表示します.例:<a href="javascript:window.open('about:blank')">Click me</a>
この行のコードをHTMLページに入れて、その中のリンクをクリックすると、画面に「[object]」が表示されます.これはwindowのためです.Open()メソッドは、新しく開いたウィンドウの参照を返します.オブジェクトは表示する文字列に変換されます.このような効果を回避するにはvoid演算子でwindowを呼び出すことができる.Open()関数:
<a href="javascript:void(window.open('about:blank'))">Click me</a>
これはwindowです.Open()呼び出しはundefinedを返します.有効な値ではなく、ブラウザウィンドウに表示されません.