CoffeeScript教程

CoffeeScript 运算符和别名

CoffeeScript 运算符

运算符是告诉编译器执行特定数学或逻辑函数的符号。让我们用一个简单的表达式 4 + 5 等于 9。这里 4 和 5 被称为 操作数,"+"被称为 操作符
CoffeeScript 提供的运算符与 JavaScript 中的相同,但有一些不同。 JavaScript 中存在一些有问题的运算符。 CoffeeScript 要么删除了它们,要么修改了它们的功能,并且还引入了一些新的运算符。
以下是 CoffeeScript 支持的运算符列表。
算术运算符 比较运算符 逻辑(或关系)运算符 赋值运算符

CoffeeScript 别名

除了运算符,CoffeeScript 还提供别名。 CoffeeScript 为各种运算符和符号提供了别名,以使您的 CoffeeScript 代码更具可读性和用户友好性。
让我们一一看看CoffeeScript的所有操作符和别名。

算术运算符

CoffeeScript 支持以下算术运算符。假设变量 A 包含 10 并且变量 B 包含 20,那么-
显示示例
S.No 运算符和描述 示例
+(加法)
两个操作数相加
A + B = 30
−(减法)
从第一个操作数中减去第二个操作数
A-B =-10
*(乘法)
两个操作数相乘
A * B = 200
/(除法)
分子除以分母
B/A = 2
% (Modulus)
输出整数除法的余数
B % A = 0
++ (Increment)
将整数值加一
A++ = 11
--(递减)
将整数值减一
A--= 9

比较运算符

JavaScript 支持以下比较运算符。假设变量 A持有 10,变量 B持有 20,那么-
显示示例
S.No 运算符和描述 示例
= (Equal)
检查两个操作数的值是否相等,如果相等则条件成立。
(A == B) 不是真的。
!= (Not Equal)
检查两个操作数的值是否相等,如果不相等则条件成立.
(A != B) 是真的。
>(大于)
检查左操作数的值是否大于右操作数的值,如果是,则条件变为真的。
(A > B) 不是真的。
<(小于)
检查左操作数的值是否小于右操作数的值,如果是,则条件变为真的。
(A
>=(大于或等于)
检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。
(A >= B) 不是真的。
<=(小于或等于)
检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。
(A <= B) 为真。
下表显示了一些比较运算符的别名。假设 A持有 20,变量 B持有 20
显示示例
操作员 别名 示例
==(等于) A is B 给你真实。
!==(不等于) 不是 A isnt B 给你错误。

逻辑运算符

CoffeeScript 支持以下逻辑运算符。假设变量 A 包含 10 并且变量 B 包含 20,那么-
显示示例
S.No 运算符和描述 示例
&&(逻辑与)
如果两个操作数都非零,则条件成立。
(A && B) 为真。
|| (逻辑或)
如果两个操作数中的任何一个非零,则条件成立。
(A || B) 是真的。
! (逻辑非)
反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符会将其设为假。
! (A && B) 是假的。
下表显示了一些逻辑运算符的别名。假设 X 持有 true 并且变量 Y 持有 false
显示示例
操作员 别名 示例
&&(逻辑与) X 和 Y 给你错误
|| (逻辑或) X 或 Y 给你真实
! (不是 x) 不是 not X 给你假

按位运算符

CoffeeScript 支持以下按位运算符。假设变量 A持有 2,变量 B持有 3,那么-
显示示例
S.No 运算符和描述 示例
&(按位与)
它对其整数参数的每一位执行布尔与运算。
(A & B) 是 2.
| (BitWise OR)
它对其整数参数的每一位执行布尔或运算。
(A | B) 是 3.
^ (Bitwise XOR)
它对其整数参数的每一位执行布尔异或运算。异或意味着操作数一为真或操作数二为真,但不能同时为真。
(A ^ B) 是 1.
~ (Bitwise Not)
它是一个一元运算符,通过反转操作数中的所有位进行运算。
(~B) 是-4、
<<(左移)
它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新位用零填充。一个值左移一位相当于乘以 2,移两个位置相当于乘以 4,以此类推。
(A <<1) 是 4.
>>(右移)
二元右移运算符。左操作数的值向右移动右操作数指定的位数。
(A >> 1) 是 1.

赋值运算符

CoffeeScript 支持以下赋值运算符-
显示示例
S.No 运算符和描述 示例
=(简单赋值)
将右侧操作数的值赋值给左侧操作数
C = A + B 会将 A + B 的值赋给 C
+=(加法和赋值)
将右操作数与左操作数相加,并将结果赋值给左操作数。
C += A 等价于 C = C + A
-=(减法和赋值)
它从左操作数中减去右操作数,并将结果分配给左操作数。
C-= A 等价于 C = C-A
*= (Multiply and Assignment)
它将右操作数与左操作数相乘,并将结果分配给左操作数。
C *= A 等价于 C = C * A
/= (Divide and Assignment)
将左操作数与右操作数相除,并将结果分配给左操作数。
C/= A 等价于 C = C/A
%= (Modules and Assignment)
它使用两个操作数取模并将结果分配给左操作数。
C %= A 等价于 C = C % A
注意-相同的逻辑适用于按位运算符,因此它们将变得像 <<=、>>=、>>=、&=、|= 和 ^=。

CoffeeScript 中的相等运算符

在使用 JavaScript 时,您会遇到两种类型的相等运算符 =====
JavaScript 中的 == 运算符是 类型强制,即如果一个操作中两个操作数的类型不同,则其中一个的数据类型运算符被转换为 other ,然后两者进行比较。
CoffeeScript 避免了这种不受欢迎的强制转换,它将 == 运算符编译为 JavaScript === 的严格比较运算符。
如果我们使用 ===比较两个操作数,那么它返回 true,只有当它们的值和数据类型都相等时才返回 错误

示例

考虑以下示例。这里我们有两个变量 aba 持有整数类型的值 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、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 删除了三元运算符;取而代之的是,我们可以使用 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 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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4