CoffeeScript - Người điều hành và Bí danh

Nhà điều hành CoffeeScript

Toán tử là một ký hiệu cho trình biên dịch thực hiện các chức năng toán học hoặc logic cụ thể. Hãy để chúng tôi lấy một biểu thức đơn giản4 + 5 is equal to 9. Ở đây 4 và 5 được gọi làoperands và '+' được gọi là operator.

Các toán tử do CoffeeScript cung cấp cũng giống như trong JavaScript ngoại trừ một số khác biệt. Có một số toán tử có vấn đề trong JavaScript. CoffeeScript đã loại bỏ chúng hoặc sửa đổi chức năng của chúng và nó cũng giới thiệu một số toán tử mới.

Sau đây là danh sách các toán tử được CoffeeScript hỗ trợ.

  • Toán tử số học
  • Toán tử so sánh
  • Toán tử logic (hoặc quan hệ)
  • Người điều hành nhiệm vụ

Bí danh CoffeeScript

Ngoài các toán tử, CoffeeScript cũng cung cấp các bí danh. CoffeeScript cung cấp bí danh cho các toán tử và ký hiệu khác nhau để làm cho mã CoffeeScript của bạn dễ đọc và thân thiện hơn với người dùng.

Hãy để chúng tôi xem xét từng toán tử và bí danh của CoffeeScript.

Toán tử số học

CoffeeScript hỗ trợ các toán tử số học sau. Giả sử biếnA nắm giữ 10 và biến B nắm giữ 20, sau đó -

Hiển thị các ví dụ

S. không Nhà điều hành và Mô tả Thí dụ
1

+ (Addition)

Thêm hai toán hạng

A + B = 30
2

− (Subtraction)

Trừ toán hạng thứ hai với toán hạng đầu tiên

A - B = -10
3

* (Multiplication)

Nhân cả hai toán hạng

A * B = 200
4

/ (Division)

Chia tử số cho mẫu số

B / A = 2
5

% (Modulus)

Kết quả còn lại của một phép chia số nguyên

B% A = 0
6

++ (Increment)

Tăng giá trị số nguyên lên một

A ++ = 11
7

-- (Decrement)

Giảm một giá trị số nguyên

A-- = 9

Toán tử so sánh

JavaScript hỗ trợ các toán tử so sánh sau. Giả sử biếnA nắm giữ 10 và biến B nắm giữ 20, sau đó -

Hiển thị các ví dụ

S. không Nhà điều hành và Mô tả Thí dụ
1

= = (Equal)

Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành true.

(A == B) không đúng.
2

!= (Not Equal)

Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu các giá trị không bằng nhau thì điều kiện trở thành true.

(A! = B) là đúng.
3

> (Greater than)

Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true.

(A> B) không đúng.
4

< (Less than)

Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn giá trị của toán hạng bên phải hay không, nếu có, thì điều kiện trở thành true.

(A <B) là đúng.
5

>= (Greater than or Equal to)

Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true.

(A> = B) là không đúng.
6

<= (Less than or Equal to)

Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có, thì điều kiện trở thành true.

(A <= B) là đúng.

Bảng sau hiển thị các bí danh của một số toán tử So sánh. Giả sửA nắm giữ 20 và biến B nắm giữ 20.

Hiển thị các ví dụ

Nhà điều hành Bí danh Thí dụ
= = (Bằng nhau) is A is B cung cấp cho bạn sự thật.
! = = (Không bằng) isnt A isnt B cho bạn sai.

Toán tử logic

CoffeeScript hỗ trợ các toán tử logic sau. Giả sử biếnA nắm giữ 10 và biến B nắm giữ 20, sau đó -

Hiển thị các ví dụ

S. không Nhà điều hành và Mô tả Thí dụ
1

&& (Logical AND)

Nếu cả hai toán hạng đều khác 0, thì điều kiện trở thành true.

(A && B) là đúng.
2

|| (Logical OR)

Nếu bất kỳ toán hạng nào trong hai toán hạng khác 0, thì điều kiện trở thành true.

(A || B) là đúng.
3

! (Logical NOT)

Đảo ngược trạng thái logic của toán hạng của nó. Nếu một điều kiện là đúng, thì toán tử logic NOT sẽ làm cho nó sai.

! (A && B) là sai.

Bảng sau đây cho thấy bí danh của một số toán tử logic. Giả sửX nắm giữ true và biến Y nắm giữ false.

Hiển thị các ví dụ

Nhà điều hành Bí danh Thí dụ
&& (Logic AND) and X and Y cho bạn sai
|| (Hợp lý HOẶC) or X or Y cho bạn sự thật
! (không phải x) not not X cho bạn sai

Toán tử Bitwise

CoffeeScript hỗ trợ các toán tử bitwise sau. Giả sử biếnA nắm giữ 2 và biến B nắm giữ 3, sau đó -

Hiển thị các ví dụ

S. không Nhà điều hành và Mô tả Thí dụ
1

& (Bitwise AND)

Nó thực hiện phép toán Boolean AND trên mỗi bit của các đối số nguyên của nó.

(A & B) là 2.
2

| (BitWise OR)

Nó thực hiện phép toán Boolean OR trên mỗi bit của các đối số nguyên của nó.

(A | B) là 3.
3

^ (Bitwise XOR)

Nó thực hiện phép toán HOẶC độc quyền Boolean trên mỗi bit của các đối số nguyên của nó. HOẶC độc quyền có nghĩa là toán hạng một là đúng hoặc toán hạng hai là đúng, nhưng không phải cả hai.

(A ^ B) là 1.
4

~ (Bitwise Not)

Nó là một toán tử một ngôi và hoạt động bằng cách đảo ngược tất cả các bit trong toán hạng.

(~ B) là -4.
5

<< (Left Shift)

Nó di chuyển tất cả các bit trong toán hạng đầu tiên của nó sang trái theo số vị trí được chỉ định trong toán hạng thứ hai. Các bit mới được lấp đầy bởi các số không. Chuyển một giá trị sang trái một vị trí tương đương với nhân nó với 2, dịch chuyển hai vị trí tương đương với nhân 4, v.v.

(A << 1) là 4.
6

>> (Right Shift)

Toán tử Shift phải nhị phân. Giá trị của toán hạng bên trái được di chuyển sang phải bằng số bit được chỉ định bởi toán hạng bên phải.

(A >> 1) là 1.

Người điều hành nhiệm vụ

CoffeeScript hỗ trợ các toán tử gán sau:

Hiển thị các ví dụ

S. không Nhà điều hành và Mô tả Thí dụ
1

= (Simple Assignment )

Gán các giá trị từ toán hạng bên phải cho toán hạng bên trái

C = A + B sẽ gán giá trị của A + B vào C
2

+= (Add and Assignment)

Nó thêm toán hạng bên phải vào toán hạng bên trái và gán kết quả cho toán hạng bên trái.

C + = A tương đương với C = C + A
3

-= (Subtract and Assignment)

Nó trừ toán hạng bên phải khỏi toán hạng bên trái và gán kết quả cho toán hạng bên trái.

C - = A tương đương với C = C - A
4

*= (Multiply and Assignment)

Nó nhân toán hạng bên phải với toán hạng bên trái và gán kết quả cho toán hạng bên trái.

C * = A tương đương với C = C * A
5

/= (Divide and Assignment)

Nó chia toán hạng bên trái với toán hạng bên phải và gán kết quả cho toán hạng bên trái.

C / = A tương đương với C = C / A
6

%= (Modules and Assignment)

Nó có mô đun sử dụng hai toán hạng và gán kết quả cho toán hạng bên trái.

C% = A tương đương với C = C% A

Note - Logic tương tự áp dụng cho các toán tử Bitwise nên chúng sẽ trở nên giống như << =, >> =, >> =, & =, | = và ^ =.

Toán tử bình đẳng trong CoffeeScript

Trong khi làm việc với JavaScript, bạn sẽ gặp hai loại toán tử bình đẳng =====.

Các == toán tử trong JavaScript là type coercive, tức là, nếu kiểu của hai toán hạng trong một phép toán khác nhau, thì kiểu dữ liệu của một trong các toán tử được chuyển đổi thành toán tử khác và sau đó cả hai được so sánh.

CoffeeScript tránh được sự ép buộc không mong muốn này, nó biên dịch == toán tử trong toán tử so sánh nghiêm ngặt của JavaScript ===.

Nếu chúng ta so sánh hai toán hạng bằng cách sử dụng ===, sau đó nó trở lại true, chỉ khi cả giá trị và kiểu dữ liệu của chúng bằng nhau, nếu không nó sẽ trả về false.

Thí dụ

Hãy xem xét ví dụ sau. Ở đây chúng ta có hai biếnab. a giữ giá trị 21 của kiểu số nguyên và b giữ cùng một giá trị, nhưng nó là của stringkiểu. Trong CoffeeScript, khi chúng ta so sánhab, kết quả sẽ là false. (Kể từ khi== toán tử của CoffeeScript được chuyển đổi thành === toán tử của JavaScript)

a=21
b="21"
result = 21=='21'
console.log result

Khi biên dịch, CoffeeScript ở trên tạo ra JavaScript sau

// Generated by CoffeeScript 1.10.0
(function() {
  var a, b, result;
  
  a = 21;
  
  b = "21";
  
  result = a === b;
  console.log(result);
}).call(this);

Khi thực thi, nó tạo ra kết quả sau.

false

Toán tử tồn tại

CoffeeScript cung cấp một toán tử mới được gọi là toán tử tồn tại để xác minh sự tồn tại của một biến. Nó được ký hiệu là?. Trừ khi một biến là null hoặc không xác định, toán tử tồn tại trả về true.

Thí dụ

Dưới đây là một ví dụ về toán tử tồn tại. Ở đây chúng ta có ba biến, cụ thể làname, agesubject và chúng tôi đang xác minh sự tồn tại của tên biến và số điện thoại bằng toán tử hiện sinh.

name="Ramu"
age=24
subject="Engineering"
verify_name = name?
verify_phone = phone?
console.log verify_name
console.log verify_phone

Khi biên dịch, điều này sẽ tạo ra mã JavaScript sau.

// 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);

Nếu chúng ta thực thi tệp CoffeeScript ở trên, nó sẽ tạo ra kết quả sau.

true
false

Note - Chúng tôi có một biến thể truy cập của toán tử hiện sinh ?. Chúng ta có thể sử dụng nó thay vì. toán tử để tìm ra các tham chiếu rỗng.

Các phép so sánh theo chuỗi

Như trong Python, chúng ta có thể sử dụng một chuỗi các toán tử so sánh trong một biểu thức duy nhất trong CoffeeScript.

Thí dụ

Sau đây là một ví dụ về việc sử dụng so sánh theo chuỗi.

score = 70
passed = 100 > score > 40

console.log passed

Khi biên dịch, ví dụ CoffeeScript cung cấp cho bạn đoạn mã JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var passed, score;

  score = 70;

  passed = (100 > score && score > 40);

  console.log(passed);

}).call(this);

Nếu bạn thực thi mã CoffeeScript ở trên, nó sẽ tạo ra kết quả sau.

true

Note- CoffeeScript loại bỏ toán tử bậc ba; thay vì nó, chúng ta có thể sử dụnginline if tuyên bố.

Bí danh CoffeeScript

Nói chung, CoffeeScript cung cấp bí danh cho các toán tử và ký hiệu khác nhau để làm cho mã CoffeeScript của bạn dễ đọc và thân thiện hơn với người dùng. Sau đây là các bí danh do CoffeeScript cung cấp.

Tên Toán tử / ký hiệu Bí danh
toán tử "bằng với" ==
toán tử "không bằng với" ! == không phải
toán tử "not" ! không phải
toán tử "và" &&
toán tử "hoặc" || hoặc là
giá trị boolean true thật đúng, đúng, trên
giá trị boolean false sai tắt, không
đối tượng hiện tại điều này @
dòng mới (hoặc) dấu chấm phẩy \cũng không ; sau đó
Ngược lại nếu ! nếu trừ khi
Để kiểm tra sự hiện diện của mảng trong
Để kiểm tra sự hiện diện của đối tượng của
Luỹ thừa a**b
Phép chia số nguyên a//b
mô-đun phụ thuộc cổ tức a%%b

Thí dụ

Ví dụ sau đây cho thấy cách sử dụng bí danh trong 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

Khi biên dịch ví dụ trên, nó cung cấp cho bạn mã JavaScript sau.

// 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);

Nếu bạn thực thi tệp CoffeeScript ở trên, nó sẽ tạo ra kết quả sau:

true
false
false
true
true
true
5.842587018385982e+27
1
0