CoffeeScript - 運算子和別名



CoffeeScript 運算子

運算子是告訴編譯器執行特定數學或邏輯函式的符號。讓我們來看一個簡單的表示式4 + 5 等於 9。這裡 4 和 5 被稱為運算元,而“+”被稱為運算子

CoffeeScript 提供的運算子與 JavaScript 中的相同,除了少數差異。JavaScript 中有一些有問題的運算子。CoffeeScript 要麼刪除了它們,要麼修改了它們的功能,並且它還引入了一些新的運算子。

以下是 CoffeeScript 支援的運算子列表。

  • 算術運算子
  • 比較運算子
  • 邏輯(或關係)運算子
  • 賦值運算子

CoffeeScript 別名

除了運算子之外,CoffeeScript 還提供別名。CoffeeScript 為各種運算子和符號提供別名,以使您的 CoffeeScript 程式碼更具可讀性和使用者友好性。

讓我們逐一看看 CoffeeScript 的所有運算子和別名。

算術運算子

CoffeeScript 支援以下算術運算子。假設變數A持有10,變數B持有20,則−

顯示示例

序號 運算子和描述 示例
1

+(加法)

將兩個運算元相加

A + B = 30
2

−(減法)

從第一個運算元中減去第二個運算元

A - B = -10
3

*(乘法)

將兩個運算元相乘

A * B = 200
4

/(除法)

將分子除以分母

B / A = 2
5

%(模數)

輸出整數除法的餘數

B % A = 0
6

++(增量)

將整數值增加一

A++ = 11
7

--(減量)

將整數值減少一

A-- = 9

比較運算子

JavaScript 支援以下比較運算子。假設變數A持有10,變數B持有20,則−

顯示示例

序號 運算子和描述 示例
1

= =(等於)

檢查兩個運算元的值是否相等,如果相等,則條件變為真。

(A == B)不為真。
2

!=(不等於)

檢查兩個運算元的值是否相等,如果值不相等,則條件變為真。

(A != B)為真。
3

>(大於)

檢查左側運算元的值是否大於右側運算元的值,如果大於,則條件變為真。

(A > B)不為真。
4

<(小於)

檢查左側運算元的值是否小於右側運算元的值,如果小於,則條件變為真。

(A < B)為真。
5

>=(大於或等於)

檢查左側運算元的值是否大於或等於右側運算元的值,如果大於或等於,則條件變為真。

(A >= B)不為真。
6

<=(小於或等於)

檢查左側運算元的值是否小於或等於右側運算元的值,如果小於或等於,則條件變為真。

(A <= B)為真。

下表顯示了一些比較運算子的別名。假設A持有20,變數B持有20

顯示示例

運算子 別名 示例
= =(等於) is A is B 給出真。
!= =(不等於) isnt A isnt B 給出假。

邏輯運算子

CoffeeScript 支援以下邏輯運算子。假設變數A持有10,變數B持有20,則−

顯示示例

序號 運算子和描述 示例
1

&&(邏輯與)

如果兩個運算元均非零,則條件變為真。

(A && B) 為真。
2

||(邏輯或)

如果兩個運算元中的任何一個非零,則條件變為真。

(A || B) 為真。
3

!(邏輯非)

反轉其運算元的邏輯狀態。如果條件為真,則邏輯非運算子將使其變為假。

! (A && B) 為假。

下表顯示了一些邏輯運算子的別名。假設X持有true,變數Y持有false

顯示示例

運算子 別名 示例
&&(邏輯與) and X and Y 給出假
||(邏輯或) or X or Y 給出真
! (not x) not not X 給出假

位運算子

CoffeeScript 支援以下位運算子。假設變數A持有2,變數B持有3,則−

顯示示例

序號 運算子和描述 示例
1

&(按位與)

它對每個整數引數的每一位執行布林與運算。

(A & B) 為 2。
2

|(按位或)

它對每個整數引數的每一位執行布林或運算。

(A | B) 為 3。
3

^(按位異或)

它對每個整數引數的每一位執行布林異或運算。異或意味著運算元一為真或運算元二為真,但不能兩者都為真。

(A ^ B) 為 1。
4

~(按位非)

它是一個一元運算子,透過反轉運算元中的所有位來操作。

(~B) 為 -4。
5

<<(左移)

它將第一個運算元中的所有位向左移動第二個運算元中指定的位數。新位用零填充。將值左移一位相當於將其乘以 2,左移兩位相當於將其乘以 4,依此類推。

(A << 1) 為 4。
6

>>(右移)

二進位制右移運算子。左側運算元的值向右移動右側運算元指定的位數。

(A >> 1) 為 1。

賦值運算子

CoffeeScript 支援以下賦值運算子−

顯示示例

序號 運算子和描述 示例
1

=(簡單賦值)

將右側運算元的值賦給左側運算元

C = A + B 將 A + B 的值賦給 C
2

+=(加法賦值)

它將右側運算元加到左側運算元,並將結果賦給左側運算元。

C += A 等效於 C = C + A
3

-=(減法賦值)

它從左側運算元中減去右側運算元,並將結果賦給左側運算元。

C -= A 等效於 C = C - A
4

*=(乘法賦值)

它將右側運算元乘以左側運算元,並將結果賦給左側運算元。

C *= A 等效於 C = C * A
5

/=(除法賦值)

它將左側運算元除以右側運算元,並將結果賦給左側運算元。

C /= A 等效於 C = C / A
6

%=(模數賦值)

它使用兩個運算元取模,並將結果賦給左側運算元。

C %= A 等效於 C = C % A

注意− 位運算子也適用相同的邏輯,因此它們將變成 <<=、>>=、>>=、&=、|= 和 ^=。

CoffeeScript 中的相等運算子

在使用 JavaScript 時,您會遇到兩種型別的相等運算子=====

JavaScript 中的==運算子是型別強制的,即如果運算中兩個運算元的型別不同,則其中一個運算元的資料型別將轉換為另一個,然後進行比較。

CoffeeScript 避免了這種不希望的強制,它將==運算子編譯成 JavaScript 的嚴格比較運算子===

如果我們使用===比較兩個運算元,則僅當它們的值和資料型別都相等時,它才會返回true,否則它將返回false

示例

考慮以下示例。這裡我們有兩個變數aba持有整數型別的值 21,而b持有相同的值,但它是字串型別。在 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 或 undefined,否則存在運算子返回 true。

示例

下面是存在運算子的示例。這裡我們有三個變數,即name、agesubject,我們正在使用存在運算子驗證變數 name 和 phone 的存在。

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

注意− 我們有一個存在運算子?的訪問器變體。我們可以使用它代替 . 運算子來查詢空引用。

鏈式比較

與 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 移除了三元運算子;我們可以使用內聯 if 語句來代替它。

CoffeeScript 別名

通常,CoffeeScript 為各種運算子和符號提供了別名,以便使您的 CoffeeScript 程式碼更易讀和更友好。以下是 CoffeeScript 提供的別名。

名稱 運算子/符號 別名
"等於" 運算子 == is
"不等於" 運算子 !== isnt
"非" 運算子 ! not
"與" 運算子 && and
"或" 運算子 || or
布林值 true true true, yes, on
布林值 false false off, no
當前物件 this @
換行符(或)分號 \n 或 ; 然後
if 的逆運算 ! if unless
測試陣列是否存在 in
測試物件是否存在 of
指數運算 a**b
整數除法 a//b
被除數相關的模運算 a%%b

示例

以下示例演示瞭如何在 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
廣告

© . All rights reserved.