Coffeescript-operators-and-aliases
CoffeeScript-演算子とエイリアス
CoffeeScriptオペレーター
演算子は、特定の数学関数または論理関数を実行するようコンパイラーに指示する記号です。 簡単な式を見てみましょう 4+ 5は9 です。 ここで、4と5は*オペランド*と呼ばれ、「+」は*演算子*と呼ばれます。
CoffeeScriptが提供する演算子は、いくつかの違いを除いてJavaScriptと同じです。 JavaScriptには問題のある演算子がいくつかあります。 CoffeeScriptはそれらを削除するか機能を変更し、いくつかの新しい演算子も導入しました。
以下は、CoffeeScriptでサポートされている演算子のリストです。
- 算術演算子
- 比較演算子
- 論理(またはリレーショナル)演算子
- 割り当て演算子
CoffeeScriptエイリアス
演算子に加えて、CoffeeScriptはエイリアスも提供します。 CoffeeScriptは、CoffeeScriptコードを読みやすく、より使いやすいものにするために、さまざまな演算子とシンボルのエイリアスを提供します。
CoffeeScriptのすべての演算子とエイリアスを1つずつ見ていきましょう。
算術演算子
CoffeeScriptは次の算術演算子をサポートしています。 変数 A が 10 を保持し、変数 B が 20 を保持すると仮定します-
link:/coffeescript/coffeescript_arithmetic_operators [例を表示]
S.No | Operator and Description | Example |
---|---|---|
1 |
PLUS (Addition) 2つのオペランドを追加します |
A PLUS B = 30 |
2 |
− (Subtraction) 最初のオペランドから2番目のオペランドを減算します |
A - B = -10 |
3 |
両方のオペランドを乗算します |
A* B = 200 |
4 |
/(Division) 分子を分母で除算する |
B/A = 2 |
5 |
% (Modulus) 整数除算の剰余を出力します |
B % A = 0 |
6 |
PLUSPLUS (Increment) 整数値を1つ増やします |
APLUSPLUS = 11 |
7 |
整数値を1減らします |
A-- = 9 |
比較演算子
JavaScriptは、次の比較演算子をサポートしています。 変数 A が 10 を保持し、変数 B が 20 を保持すると仮定します-
link:/coffeescript/coffeescript_comparison_operators [例を表示]
S.No | Operator and Description | Example |
---|---|---|
1 |
= = (Equal) 2つのオペランドの値が等しいかどうかを確認し、等しい場合は条件が真になります。 |
(A == B) is not true. |
2 |
!= (Not Equal) 2つのオペランドの値が等しいかどうかをチェックし、値が等しくない場合は条件が真になります。 |
(A != B) is true. |
3 |
> (Greater than) 左のオペランドの値が右のオペランドの値よりも大きいかどうかをチェックし、そうであれば条件は真になります。 |
(A > B) is not true. |
4 |
< (Less than) 左のオペランドの値が右のオペランドの値よりも小さいかどうかを確認し、そうであれば条件は真になります。 |
(A < B) is true. |
5 |
>= (Greater than or Equal to) 左のオペランドの値が右のオペランドの値以上かどうかをチェックし、そうであれば条件は真になります。 |
(A >= B) is not true. |
6 |
⇐ (Less than or Equal to) 左のオペランドの値が右のオペランドの値以下かどうかをチェックし、そうであれば条件は真になります。 |
(A ⇐ B) is true. |
次の表に、いくつかの比較演算子のエイリアスを示します。 A が 20 を保持し、変数 B が 20 を保持するとします。
リンク:/coffeescript/coffeescript_comparison_aliases [例を表示]
Operator | Alias | Example |
---|---|---|
= = (Equal) | is | A is B gives you true. |
!= = (Not Equal) | isnt | A isnt B gives you false. |
論理演算子
CoffeeScriptは次の論理演算子をサポートしています。 変数 A が 10 を保持し、変数 B が 20 を保持すると仮定します-
link:/coffeescript/coffeescript_logical_operators [例を表示]
S.No | Operator and Description | Example |
---|---|---|
1 |
&& (Logical AND) 両方のオペランドがゼロ以外の場合、条件は真になります。 |
(A && B) is true. |
2 | * | |
(Logical OR)* 2つのオペランドのいずれかがゼロ以外の場合、条件は真になります。 |
(A | |
B) is true. | 3 |
! (Logical NOT) オペランドの論理状態を反転します。 条件が真の場合、Logical NOT演算子はそれを偽にします。 |
次の表に、いくつかの論理演算子のエイリアスを示します。 X が true を保持し、変数 Y が false を保持するとします。
リンク:/coffeescript/coffeescript_logical_aliases [例を表示]
Operator | Alias | Example |
---|---|---|
&& (Logical AND) | and | X and Y gives you false |
(Logical OR) | ||
or | X or Y gives you true | ! (not x) |
ビット演算子
CoffeeScriptは次のビット演算子をサポートしています。 変数 A が 2 を保持し、変数 B が 3 を保持すると仮定します-
リンク:/coffeescript/coffeescript_bitwise_operators [例を表示]
S.No | Operator and Description | Example |
---|---|---|
1 |
& (Bitwise AND) 整数引数の各ビットに対してブールAND演算を実行します。 |
(A & B) is 2. |
2 | * |
(BitWise OR)* 整数引数の各ビットに対してブールOR演算を実行します。 |
(A | B) is 3. | 3 |
^ (Bitwise XOR) 整数引数の各ビットに対してブール排他的OR演算を実行します。 排他的ORは、オペランド1が真であるか、オペランド2が真であり、両方ではないことを意味します。 |
(A ^ B) is 1. | 4 |
~ (Bitwise Not) これは単項演算子であり、オペランドのすべてのビットを反転することにより動作します。 |
(~B) is -4. | 5 |
<< (Left Shift) 第1オペランドのすべてのビットを、第2オペランドで指定された桁数だけ左に移動します。 新しいビットはゼロで埋められます。 値を1ポジション左にシフトすることは、2を乗算することと同等です。2ポジションをシフトすることは、4を乗算することと同等です。 |
(A << 1) is 4. | 6 |
割り当て演算子
CoffeeScriptは次の割り当て演算子をサポートしています-
link:/coffeescript/coffeescript_assignment_operators [例を表示]
S.No | Operator and Description | Example |
---|---|---|
1 |
= (Simple Assignment ) 右側のオペランドから左側のオペランドに値を割り当てます |
C = A PLUS B will assign the value of A PLUS B into C |
2 |
PLUS= (Add and Assignment) 右オペランドを左オペランドに追加し、結果を左オペランドに割り当てます。 |
C PLUS= A is equivalent to C = C PLUS A |
3 |
-= (Subtract and Assignment) 左のオペランドから右のオペランドを減算し、結果を左のオペランドに割り当てます。 |
C -= A is equivalent to C = C - A |
4 |
*= (Multiply and Assignment) 右オペランドと左オペランドを乗算し、結果を左オペランドに割り当てます。 |
C *= A is equivalent to C = C *A |
5 |
/= (Divide and Assignment) 左のオペランドを右のオペランドで除算し、結果を左のオペランドに割り当てます。 |
C/= A is equivalent to C = C/A |
6 |
%= (Modules and Assignment) 2つのオペランドを使用してモジュラスを取得し、結果を左のオペランドに割り当てます。 |
C %= A is equivalent to C = C % A |
注-ビット単位演算子にも同じロジックが適用されるため、⇐=、>> =、>> =、&=、| =、^ =のようになります。
CoffeeScriptの等価演算子
JavaScriptを使用しているときに、2種類の等値演算子 == と === に遭遇します。
JavaScriptの == 演算子は type coercive です。つまり、操作内の2つのオペランドの型が異なる場合、一方の演算子のデータ型が他方に変換されてから、両方が比較されます。
CoffeeScriptはこの望ましくない強制を回避し、 == 演算子をJavaScript === の厳密な比較演算子にコンパイルします。
*===* を使用して2つのオペランドを比較する場合、値とデータ型の両方が等しい場合にのみ *true* を返し、そうでない場合は *false* を返します。
例
次の例を考えてください。 ここには、2つの変数 a と b があります。 a は整数型の値21を保持し、 b は同じ値を保持しますが、それは string 型です。 CoffeeScriptでは、 a と b を比較すると、結果は false になります。 (CoffeeScriptの == 演算子はJavaScriptの === 演算子に変換されるため)
a=21
b="21"
result = 21=='21'
console.log result
コンパイル時に、上記のCoffeeScriptは次のJavaScriptを生成します
//Generated by CoffeeScript 1.10.0
(function() {
var a, b, result;
a = 21;
b = "21";
result = a === b;
console.log(result);
}).call(this);
実行すると、次の出力が生成されます。
false
実存のオペレーター
CoffeeScriptは、変数の存在を検証するために、実在演算子と呼ばれる新しい演算子を提供します。 *?*で示されます。 変数がnullまたは未定義でない限り、存在演算子はtrueを返します。
例
以下は、実存演算子の例です。 ここには、 name、age 、および subject という3つの変数があり、実在演算子を使用して変数名と電話の存在を確認しています。
name="Ramu"
age=24
subject="Engineering"
verify_name = name?
verify_phone = phone?
console.log verify_name
console.log verify_phone
コンパイル時に、これにより次のJavaScriptコードが生成されます。
//Generated by CoffeeScript 1.10.0
(function() {
var age, name, subject, verify_name, verify_phone;
name = "Ramu";
age = 24;
subject = "Engineering";
verify_name = name != null;
verify_phone = typeof phone !== "undefined" && phone !== null;
console.log(verify_name);
console.log(verify_phone);
}).call(this);
上記のCoffeeScriptファイルを実行すると、次の出力が生成されます。
true
false
注-存在演算子*?*のアクセサバリアントがあります。 の代わりに使用できます。 null参照を見つける演算子。
連鎖比較
Pythonと同様に、CoffeeScriptの単一の式で一連の比較演算子を使用できます。
例
以下は、連鎖比較の使用例です。
score = 70
passed = 100 > score > 40
console.log passed
コンパイル時に、CoffeeScriptの例は次のJavaScriptコードを提供します。
//Generated by CoffeeScript 1.10.0
(function() {
var passed, score;
score = 70;
passed = (100 > score && score > 40);
console.log(passed);
}).call(this);
上記のCoffeeScriptコードを実行すると、次の出力が生成されます。
true
注意-CoffeeScriptは三項演算子を削除します。その代わりに、 inline if ステートメントを使用できます。
CoffeeScriptエイリアス
一般的に、CoffeeScriptは、CoffeeScriptコードを読みやすく、より使いやすいものにするために、さまざまな演算子とシンボルにエイリアスを提供します。 以下は、CoffeeScriptによって提供されるエイリアスです。
Name | Operator/symbol | Aliases |
---|---|---|
"equals to" operator | == | is |
"not equals to" operator | !== | isnt |
"not" operator | ! | not |
"and" operator | && | and |
"or" operator | ||
or | boolean value true | |
true | true, yes, on | boolean value false |
false | off, no | current object |
this | @ | new line (or) semi colon |
\n or ; | then | Inverse of if |
! if | unless | To test for array presence |
in | To test for object presence | |
of | Exponentiation | |
a**b | Integer division | |
a//b | dividend dependent modulo |
例
次の例は、CoffeeScriptでエイリアスを使用する方法を示しています-
a=21; b=21
x = true; y = false
console.log a is b
console.log a isnt b
console.log x and y
console.log x or y
console.log yes or no
console.log on or off
console.log a**b
console.log a//b
console.log a%%b
上記の例をコンパイルすると、次のJavaScriptコードが提供されます。
//Generated by CoffeeScript 1.10.0
(function() {
var a, b, x, y,
modulo = function(a, b) { return (+a % (b = +b) + b) % b; };
a = 21;
b = 21;
x = true;
y = false;
console.log(a === b);
console.log(a !== b);
console.log(x && y);
console.log(x || y);
console.log(true || false);
console.log(true || false);
console.log(Math.pow(a, b));
console.log(Math.floor(a/b));
console.log(modulo(a, b));
}).call(this);
上記のCoffeeScriptファイルを実行すると、次の出力が生成されます-
true
false
false
true
true
true
5.842587018385982e+27
1
0