TypeScript-演算子
演算子とは何ですか?
オペレーターは、データに対して実行される関数を定義します。演算子が機能するデータは、オペランドと呼ばれます。次の式を考えてみましょう-
7 + 5 = 12
ここで、値7、5、および12は次のとおりです。 operands、+と=は operators。
TypeScriptの主要な演算子は次のように分類できます-
- 算術演算子
- 論理演算子
- 関係演算子
- ビット演算子
- 代入演算子
- 三項/条件演算子
- 文字列演算子
- タイプ演算子
算術演算子
変数aとbの値がそれぞれ10と5であると仮定します。
例を表示
オペレーター | 説明 | 例 |
---|---|---|
+(追加) | オペランドの合計を返します | a + bは15です |
-(減算) | 値の差を返します | a-bは5です |
*(乗算) | 値の積を返します | a * bは50です |
/(除算) | 除算演算を実行し、商を返します | a / bは2です |
% (係数) | 除算演算を実行し、余りを返します | a%bは0です |
++(インクリメント) | 変数の値を1つインクリメントします | a ++は11です |
-(デクリメント) | 変数の値を1つ減らします | a--は9です |
関係演算子
関係演算子は、2つのエンティティ間の関係の種類をテストまたは定義します。関係演算子はブール値、つまりtrue / falseを返します。
Aの値が10で、Bの値が20であると仮定します。
例を表示
オペレーター | 説明 | 例 |
---|---|---|
>> | 大なり記号 | (A> B)はFalseです |
< | 未満 | (A <B)は真です |
> = | 以上 | (A> = B)はFalseです |
<= | 以下 | (A <= B)はTrueです |
== | 平等 | (A == B)は偽です |
!= | 等しくない | (A!= B)はTrueです |
論理演算子
論理演算子は、2つ以上の条件を組み合わせるために使用されます。論理演算子もブール値を返します。変数Aの値が10で、Bが20であると仮定します。
例を表示
オペレーター | 説明 | 例 |
---|---|---|
&&(および) | 指定されたすべての式がtrueを返す場合にのみ、演算子はtrueを返します | (A> 10 && B> 10)はFalseです |
|| (または) | 指定された式の少なくとも1つがtrueを返す場合、演算子はtrueを返します | (A> 10 || B> 10)は真です |
!(NOT) | 演算子は、式の結果の逆数を返します。例:!(> 5)はfalseを返します | !(A> 10)はTrueです |
ビット演算子
変数A = 2およびB = 3と仮定します
例を表示
オペレーター | 説明 | 例 |
---|---|---|
&(ビットごとのAND) | 整数引数の各ビットに対してブールAND演算を実行します。 | (A&B)は2です |
| (BitWise OR) | 整数引数の各ビットに対してブールOR演算を実行します。 | (A | B)は3です |
^(ビット単位のXOR) | 整数引数の各ビットに対してブール排他的論理和演算を実行します。排他的論理和は、オペランド1が真であるかオペランド2が真であるが、両方ではないことを意味します。 | (A ^ B)は1です |
〜(ビット単位ではありません) | これは単項演算子であり、オペランドのすべてのビットを逆にすることによって動作します。 | (〜B)は-4です |
<<(左シフト) | 第1オペランドのすべてのビットを、第2オペランドで指定された桁数だけ左に移動します。新しいビットはゼロで埋められます。値を1つ左にシフトすることは、値に2を掛けることと同じです。2つの位置をシフトすることは、4を掛けることと同じです。 | (A << 1)は4です |
>>(右シフト) | バイナリ右シフト演算子。左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します。 | (A >> 1)は1です |
>>>(ゼロで右シフト) | この演算子は、左側にシフトインされたビットが常にゼロであることを除いて、>>演算子と同じです。 | (A >>> 1)は1です |
代入演算子
例を表示
オペレーター | 説明 | 例 |
---|---|---|
=(単純な割り当て) | 右側のオペランドから左側のオペランドに値を割り当てます | C = A + Bは、A + Bの値をCに割り当てます |
+ =(追加と割り当て) | 右のオペランドを左のオペランドに追加し、結果を左のオペランドに割り当てます。 | C + = AはC = C + Aと同等です |
-=(減算と割り当て) | 左のオペランドから右のオペランドを減算し、その結果を左のオペランドに割り当てます。 | C- = AはC = C-Aと同等です |
* =(乗算と割り当て) | 右のオペランドと左のオペランドを乗算し、その結果を左のオペランドに割り当てます。 | C * = AはC = C * Aと同等です |
/ =(分割と割り当て) | 左のオペランドを右のオペランドで除算し、その結果を左のオペランドに割り当てます。 |
Note −同じ論理がビット演算子にも適用されるため、<< =、>> =、>> =、&=、| =、および^ =になります。
その他の演算子
否定演算子(-)
値の符号を変更します。例を見てみましょう。
var x:number = 4
var y = -x;
console.log("value of x: ",x); //outputs 4
console.log("value of y: ",y); //outputs -4
コンパイル時に、次のJavaScriptコードが生成されます。
//Generated by typescript 1.8.10
var x = 4;
var y = -x;
console.log("value of x: ", x); //outputs 4
console.log("value of y: ", y); //outputs -4
次の出力が生成されます-
value of x: 4
value of y: -4
文字列演算子:連結演算子(+)
+演算子を文字列に適用すると、2番目の文字列が最初の文字列に追加されます。次の例は、この概念を理解するのに役立ちます。
var msg:string = "hello"+"world"
console.log(msg)
コンパイル時に、次のJavaScriptコードが生成されます。
//Generated by typescript 1.8.10
var msg = "hello" + "world";
console.log(msg);
次の出力が生成されます-
helloworld
連結操作では、文字列間にスペースは追加されません。1つのステートメントで複数の文字列を連結できます。
条件演算子(?)
この演算子は、条件式を表すために使用されます。条件演算子は、三項演算子と呼ばれることもあります。構文は次のとおりです-
Test ? expr1 : expr2
Test −は条件式を指します
expr1 −条件が真の場合に返される値
expr2 −条件がfalseの場合に返される値
次のコードを見てみましょう-
var num:number = -2
var result = num > 0 ?"positive":"non-positive"
console.log(result)
2行目は、変数の値が numゼロより大きい。場合num がゼロより大きい値に設定されている場合は、文字列「positive」が返されます。それ以外の場合は、文字列「non-positive」が返されます。
コンパイル時に、次のJavaScriptコードが生成されます。
//Generated by typescript 1.8.10
var num = -2;
var result = num > 0 ? "positive" : "non-positive";
console.log(result);
上記のコードスニペットは、次の出力を生成します-
non-positive
タイプ演算子
typeof演算子
単項演算子です。この演算子は、オペランドのデータ型を返します。次の例を見てください-
var num = 12
console.log(typeof num); //output: number
コンパイル時に、次のJavaScriptコードが生成されます。
//Generated by typescript 1.8.10
var num = 12;
console.log(typeof num); //output: number
次の出力が生成されます-
number
instanceof
この演算子は、オブジェクトが指定されたタイプであるかどうかをテストするために使用できます。の用法instanceof 演算子については、この章で説明します classes。