[Javascript]演算子
36192 ワード
算術演算子
算術演算子(
arithmetic operator
)は、数学計算を実行し、新しい数値を生成する.算術演算ができない場合は、NaN
を返します.にげんえんざんし
この算術演算子(
binary arithmetic operator
)は、2つの被演算子を算術演算し、数値値を生成し、値を変更せず、常に新しい値を生成する.// binary arithmetic operator
5 + 2; // 7
4 - 1; // 3
8 * 2; // 16
9 / 5; // 1.8
3 % 2; // 1
単項演算子
単項演算子(
unary arithmetic operator
)は、1つの被演算子を演算し、数値を生成する.この演算子とは異なり、++/--
演算子は、被演算子の値を変更する付与効果を有する.// unary arithmetic operator
var x = 2;
// 선할당 후증가(postfix increment operator)
postfIn = x++;
console.log(postfIn, x);
// 선증가 후할당(prefix increment operator)
prefIn = ++x;
console.log(prefIn, x);
// 선할당 후감소(postfix decrement operator)
postfDe = x--;
console.log(postfDe, x);
// 선감소 후할당(prefix decrement operator)
prefDe = --x;
console.log(prefDe, x);
[실행결과]
2 3
4 4
4 3
2 2
数値タイプではなく+/-
単項演算子を使用する場合、演算子は数値タイプに変換され、返されます.付随効果はありません.// unary plus
// string -> number (O)
var plusA = '5';
console.log(+plusA);
// string -> number (X)
var plusStr = 'blue';
console.log(+plusStr);
// boolean -> number
var plusB = true;
var plusC = false;
console.log(+plusB);
console.log(+plusC);
[실행결과]
5
NaN
1
0
-単項演算子は、反転された演算子記号の値を返すこともできます.// unary minus
console.log(-8);
// string -> number (O)
var minusA = '5';
console.log(-minusA);
// string -> number (X)
var minusStr = 'red';
console.log(-minusStr);
// boolean -> number
var minusB = true;
var minusC = false;
console.log(-minusB);
console.log(-minusC);
[실행결과]
-8
-5
NaN
-1
-0
+被演算子の1つ以上が文字列である場合、演算子は文字列接続演算子となり、その他の演算子は算術演算子となる.// implicit coercion
// string connection
strConnect = '2' + 5;
console.log(strConnect);
console.log(typeof strConnect);
// boolean + number
console.log(1 + true);
console.log(1 + false);
// null + number
console.log(1 + null);
// undefined + number
console.log(1 + undefined);
[실행결과]
25
string
2
1
1
NaN
📌 true、false、nullはそれぞれ1、0、0に変換されます.ただし、タイプは定義されていない数値に変換されません.これを黙示型変換(implicit coercion
)または型強制変換(type coercion
)と呼ぶ.割付演算子
代入演算子(
assignment operator
)は、右辺の変数を左辺の変数に代入します.付随効果があります.var x;
x = 5;
console.log(x);
x += 5;
console.log(x);
x -= 5;
console.log(x);
x *= 5;
console.log(x);
x /= 5;
console.log(x);
x %= 5;
console.log(x);
var str = 'My favorite perfume is ';
str += 'Acqua di parma.';
console.log(str);
[실행결과]
5
10
5
25
5
0
My favorite perfume is Acqua di parma.
比較演算子
比較演算子(
comparison operator
)左項と右項の被演算子を比較した後、結果をboolean
値に戻します.等比演算子と一致比較演算子
左と右の被演算子が同じ値で計算されるかどうかを比較し、boolean値を返します.対等比較演算子をばらばらに比較し、一致比較演算子を厳密に比較します.
同等比較
(==)
演算子左項と右項の被演算子を比較する場合、一致するタイプを暗黙のタイプで変換し、同じ値であるかどうかを比較します.便利ですが、結果は予測しにくく、ミスしやすいので、使わないほうがいいです.// loose equality
5 == 5; // true
5 == '5'; // true
一致比較(===)
演算子は、左項と右項の被演算子タイプが同じで、値が同じ場合にのみtrueを返します.// strict equality
5 === 5; // true
5 === '5'; // false
📌 注意事項NANは自分と一致しない唯一の値であるため、数値がNANであるかどうかを調べるには、関数
isNaN
を使用する必要があります.// NaN
NaN === NaN; // false
isNaN(NaN); // true
isNaN(10); // false
isNaN(1 + undefined); // true
正0と負0を比較し、trueを返します.// zero
0 === -0; // true
0 == -0; // true
📝 Object.is
法を用いて、予測可能な正確な比較結果を返す.// object.is method
Object.is(-0, +0); // false
Object.is(NaN, NaN); // true
浮動等比較演算子(!=)
および不一致比較演算子(!==)
は、それぞれ、等しい比較(==)
および一致比較(===)
演算子の逆概念である.5 != 8; // true
5 != 5; // false
5 != '5'; // false
5 !== 8; // true
5 !== 5; // false
5 !== '5'; // true
// inequality
5 > 2; // true
5 > 5; // false
5 >= 5; // true
5 <= 5; // true
大小関係比較演算子
サイズ関係比較演算子は、被演算子のサイズを比較することによってboolean値を返します.
// inequality
5 > 2; // true
5 > 5; // false
5 >= 5; // true
5 <= 5; // true
さんこうじょうけんえんざんし
3つの条件演算子(
ternary operator
)は、条件式の評価結果に基づいて返される値を決定する.疑問符(?)
の前の条件式はboolean
型の値で評価される式であり、trueと評価されると2番目の被演算子が返され、falseと評価されると3番目の被演算子が返される.var x = 5;
var result = x % 2 ? '홀수' : '짝수';
console.log(result);
[실행결과]
홀수
3つの条件演算子式は、値式文です.論理演算子
論理演算子(
logical operator
)は、右項および左項の被演算子を論理演算する.// OR operator
true || true; // true
true || false; // true
false || false; // false
// AND operator
true && true; // true
true && false; // false
false && false; // false
// NOT operator
!true; // false
!false; // true
論理否定(!)
演算子は常にboolean値を返し、被演算子がboolean値でない場合はデフォルトタイプをbooleanタイプに変換します.// implicit coercion
!0; // true
!'carrot'; // false
論理(||)
または論理乗(&&)
演算子式の計算結果は、ブール値ではない場合があります.いずれの場合も、2つの被演算子のいずれかとして評価されます.(クイック評価)// short-circuit evaluation
'Dog' && 'Cat'; // Cat
カンマ演算子(カンマ演算子)とグループ演算子(グループ演算子)
カンマ(,)演算子(
comma operator
)は、左の被演算子から順に評価され、最後の評価が終了すると最後の被演算子の評価結果が返されます.// comma operator
var x, y, z;
x = 1, y = 2, z = 3; // 3
グループ演算子(group operator
)は、被演算子を括弧('()')
で囲み、最初に評価する.グループ化演算子を使用して、演算子の優先度を調整します.// group operator
console.log(10 * 3 + 5);
console.log(10 * (3 + 5));
[실행결과]
35
80
タイプ演算子
typeof
演算子は、被演算子のデータ型を7つの文字列"string", "number", "boolean", "undefined", "symbol", "object", "function"
のうちの1つに返す.nullは返されません.関数の場合はfunctionが返されます.type of演算子が返す文字列は、7種類のデータ型と完全に一致しません.// typeof operator
typeof '' // string
typeof 1 // number
typeof NaN // number
typeof true // boolean
typeof undefined // undefined
typeof Symbol() // symbol
typeof null // object
typeof [] // object
typeof {} // object
typeof new Date() // object
typeof /test/gi // object
typeof function () {} // function
📌 type of演算子を使用してnull値を演算すると「object」が返されるため、nullタイプであるかどうかを確認すると、一致演算子(===)
が使用されます.// typeof null
var sample = null;
typeof sample === null; // false
sample === null; // true
指数演算子
指数演算子(
exponent operator
)は、左項の被演算子をベースとし、右項の被演算子を指数反復二乗として数値を返します.// exponent operator
2 ** 2; // 4
2 ** 2.5; // 5.65685424949238
2 ** 0; // 1
2 ** -4; // 0.0625
指数演算子を導入する前にMath.pow
法を用いた.// Math.pow method
Math.pow(2, 2); // 4
Math.pow(2, 2.5); // 5.65685424949238
Math:指数演算子はpow法よりも毒性が高い.2 ** 2 ** 2; // 16
Math.pow(Math.pow(2, 2), 2); // 16
負の数を平方の底として繰り返し使用する場合は、カッコで囲みます.(-3) ** 2; // 9
指数演算子は、割り当て演算子とともに使用でき、これらの演算子の中で最も優先度が高い.var num = 7;
num **= 2;
console.log(num);
console.log(2 * 5 ** 3);
[실행결과]
49
250
Reference
この問題について([Javascript]演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@nxnaxx/연산자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol