Coffeescript-operators-and-aliases

提供:Dev Guides
移動先:案内検索

CoffeeScript-演算子とエイリアス

CoffeeScriptオペレーター

演算子は、特定の数学関数または論理関数を実行するようコンパイラーに指示する記号です。 簡単な式を見てみましょう 4+ 5は9 です。 ここで、4と5は*オペランド*と呼ばれ、「+」は*演算子*と呼ばれます。

CoffeeScriptが提供する演算子は、いくつかの違いを除いてJavaScriptと同じです。 JavaScriptには問題のある演算子がいくつかあります。 CoffeeScriptはそれらを削除するか機能を変更し、いくつかの新しい演算子も導入しました。

以下は、CoffeeScriptでサポートされている演算子のリストです。

  • 算術演算子
  • 比較演算子
  • 論理(またはリレーショナル)演算子
  • 割り当て演算子

CoffeeScriptエイリアス

演算子に加えて、CoffeeScriptはエイリアスも提供します。 CoffeeScriptは、CoffeeScriptコードを読みやすく、より使いやすいものにするために、さまざまな演算子とシンボルのエイリアスを提供します。

CoffeeScriptのすべての演算子とエイリアスを1つずつ見ていきましょう。

算術演算子

CoffeeScriptは次の算術演算子をサポートしています。 変数 A10 を保持し、変数 B20 を保持すると仮定します-

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は、次の比較演算子をサポートしています。 変数 A10 を保持し、変数 B20 を保持すると仮定します-

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.

次の表に、いくつかの比較演算子のエイリアスを示します。 A20 を保持し、変数 B20 を保持するとします。

リンク:/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は次の論理演算子をサポートしています。 変数 A10 を保持し、変数 B20 を保持すると仮定します-

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演算子はそれを偽にします。

次の表に、いくつかの論理演算子のエイリアスを示します。 Xtrue を保持し、変数 Yfalse を保持するとします。

リンク:/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は次のビット演算子をサポートしています。 変数 A2 を保持し、変数 B3 を保持すると仮定します-

リンク:/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つの変数 ab があります。 a は整数型の値21を保持し、 b は同じ値を保持しますが、それは string 型です。 CoffeeScriptでは、 ab を比較すると、結果は 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