単項演算子:
1つの値のみを操作できるシンボルです
- ++ a
- –a
- + a
- -a
インクリメントおよびデクリメント演算子:
++および–:
インクリメントおよびデクリメント演算子は次のルールに従います。
- 文字列の
場合:文字列に数値がある場合は、まず文字列を数値に変換してから、1を加算および減算する操作を実行すると、文字列は数値変数になります。数値
がない場合、文字列変数はNaNになります。文字列は数値変数になります。 - ブール値の場合、最初にtrue / falseを1/0に変換してから、1を加算および減算する操作を実行します。このとき、ブール値は数値変数になります。
- オブジェクトの場合、最初にオブジェクトのvalueOf()メソッドを呼び出してから、上記のルールを適用します。結果がNaNの場合は、toString()メソッドを呼び出してから上記のルールを適用すると、オブジェクト変数は数値変数。
例えば:
var o={
valueof:function(){
return -1;
}
};
o--; //值变为-2;
単項加算および減算演算子
単項演算子を非数値型に適用する場合、演算子はNumber()変換関数のように値に対して変換を実行します。
例:
var s1="01";
var s2="1.1";
var s3="z";
var b=false;
var f=1.1;
var o={
valueOf:function(){
return -1;
}
};
s1=-s1;
s2=-s2;
s3=+s3;
b=+b;
f=-f;
o=-o;
console.log(s1); //-1
console.log(s2); //-1.1
console.log(s3); //NaN
console.log(b); //0
console.log(f); //-1.1
console.log(o); //1
ブール演算子
3つのタイプがあります:and、or、not
論理否定:
- オペランドがオブジェクトの場合、falseを返します。
- オペランドが空の文字列の場合、trueを返します。
- オペランドが空でない文字列の場合は、falseを返します。
- オペランドが値0の場合、trueを返します。
- オペランドがゼロ以外の値の場合は、falseを返します。
- オペランドがnullの場合、trueを返します。
- オペランドがNaNの場合、trueを返します。
- オペランドが未定義の場合、trueを返します。
alert(!false);//true
alert(!"blue");//false
alert(!0);//true
alert(!NaN);//true
alert(!"");//true
alert(!12345);//false
論理積(&&)
- 偽がある限り、それは偽でなければなりません。最初の数字が偽の場合、2番目の数字は判断されません。
- 論理ANDで未定義の値を使用することはできません
- 最初のオペランドがオブジェクトの場合、2番目のオペランドを返します
- 2番目の数値がオブジェクトの場合、最初の数値がtrueの場合にのみ2番目のオブジェクトを返します
- 両方のオペランドがオブジェクトの場合、2番目の数値を返します
- 最初の数値がnull、NaN、undefinedの場合、null、NaN、undefinedを返します
論理OR(||)
- 最初のオペランドがオブジェクトの場合、最初のオペランドを返します
- 最初のオペランドがfalseの場合、2番目のオペランドを返します
- 両方のオペランドがオブジェクトの場合、最初の数値を返します
- 両方の数値がnull、NaN、undefinedの場合、null、NaN、undefinedを返します