TypeScript - ตัวดำเนินการ

Operator คืออะไร?

ตัวดำเนินการกำหนดฟังก์ชันบางอย่างที่จะดำเนินการกับข้อมูล ข้อมูลที่ตัวดำเนินการทำงานเรียกว่าตัวถูกดำเนินการ พิจารณานิพจน์ต่อไปนี้ -

7 + 5 = 12

ที่นี่ค่า 7, 5 และ 12 คือ operandsในขณะที่ + และ = อยู่ operators.

ตัวดำเนินการหลักใน TypeScript สามารถจำแนกได้เป็น -

  • ตัวดำเนินการเลขคณิต
  • ตัวดำเนินการทางตรรกะ
  • ตัวดำเนินการเชิงสัมพันธ์
  • ตัวดำเนินการ Bitwise
  • ตัวดำเนินการมอบหมาย
  • ตัวดำเนินการ Ternary / conditional
  • ตัวดำเนินการสตริง
  • พิมพ์ Operator

ตัวดำเนินการเลขคณิต

สมมติค่าในตัวแปร a และ b คือ 10 และ 5 ตามลำดับ

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
+ (เพิ่มเติม) ส่งคืนผลรวมของตัวถูกดำเนินการ a + b คือ 15
- (การลบ) ส่งกลับผลต่างของค่า a - b คือ 5
* (การคูณ) ส่งคืนผลิตภัณฑ์ของค่า a * b คือ 50
/ (แผนก) ดำเนินการหารและส่งกลับผลหาร a / b คือ 2
% (โมดูลัส) ดำเนินการหารและส่งคืนส่วนที่เหลือ a% b คือ 0
++ (เพิ่มขึ้น) เพิ่มค่าของตัวแปรทีละหนึ่ง a ++ คือ 11
- (ลดลง) ลดค่าของตัวแปรทีละตัว a - คือ 9

ตัวดำเนินการเชิงสัมพันธ์

ตัวดำเนินการเชิงสัมพันธ์ทดสอบหรือกำหนดชนิดของความสัมพันธ์ระหว่างสองเอนทิตี ตัวดำเนินการเชิงสัมพันธ์ส่งคืนค่าบูลีนนั่นคือจริง / เท็จ

สมมติว่าค่าของ A คือ 10 และ B คือ 20

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
> มากกว่า (A> B) เป็นเท็จ
< น้อยกว่า (A <B) เป็นจริง
> = มากกว่าหรือเท่ากับ (A> = B) เป็นเท็จ
<= น้อยกว่าหรือเท่ากับ (A <= B) เป็นจริง
== ความเท่าเทียมกัน (A == B) เป็นเท็จ
! = ไม่เท่ากับ (A! = B) เป็นจริง

ตัวดำเนินการทางตรรกะ

ตัวดำเนินการทางตรรกะใช้เพื่อรวมเงื่อนไขตั้งแต่สองเงื่อนไขขึ้นไป ตัวดำเนินการทางตรรกะส่งคืนค่าบูลีนเช่นกัน สมมติว่าค่าของตัวแปร A คือ 10 และ B คือ 20

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
&& (และ) ตัวดำเนินการจะคืนค่าจริงก็ต่อเมื่อนิพจน์ทั้งหมดที่ระบุส่งคืนเป็นจริง (A> 10 && B> 10) เป็นเท็จ
|| (หรือ) ตัวดำเนินการจะส่งคืนค่าจริงหากนิพจน์อย่างน้อยหนึ่งนิพจน์ที่ระบุกลับเป็นจริง (A> 10 || B> 10) เป็น True
! (ไม่) ตัวดำเนินการส่งคืนค่าผกผันของผลลัพธ์ของนิพจน์ สำหรับ Eg:! (> 5) คืนค่าเท็จ ! (A> 10) เป็นจริง

ตัวดำเนินการ Bitwise

สมมติตัวแปร A = 2 และ B = 3

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
& (Bitwise AND) ดำเนินการบูลีน AND กับอาร์กิวเมนต์จำนวนเต็มแต่ละบิต (A & B) คือ 2
| (BitWise หรือ) ดำเนินการบูลีนหรือการดำเนินการกับอาร์กิวเมนต์จำนวนเต็มแต่ละบิต (A | B) คือ 3
^ (Bitwise XOR) ดำเนินการบูลีนเอกสิทธิ์เฉพาะหรือการดำเนินการกับอาร์กิวเมนต์จำนวนเต็มแต่ละบิต Exclusive OR หมายความว่าตัวถูกดำเนินการตัวใดตัวหนึ่งเป็นจริงหรือตัวถูกดำเนินการสองเป็นจริง แต่ไม่ใช่ทั้งสองอย่าง (A ^ B) คือ 1
~ (ไม่ Bitwise) เป็นตัวดำเนินการยูนารีและดำเนินการโดยการย้อนกลับบิตทั้งหมดในตัวถูกดำเนินการ (~ B) คือ -4
<< (Shift ซ้าย) มันย้ายบิตทั้งหมดในตัวถูกดำเนินการตัวแรกไปทางซ้ายตามจำนวนตำแหน่งที่ระบุในตัวถูกดำเนินการที่สอง บิตใหม่เต็มไปด้วยศูนย์ การเลื่อนค่าไปทางซ้ายหนึ่งตำแหน่งจะเทียบเท่ากับการคูณด้วย 2 การเลื่อนตำแหน่งสองตำแหน่งจะเท่ากับการคูณด้วย 4 และอื่น ๆ (A << 1) คือ 4
>> (Shift ขวา) ตัวดำเนินการกะไบนารีขวา ค่าของตัวถูกดำเนินการด้านซ้ายจะถูกย้ายไปทางขวาตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการด้านขวา (A >> 1) คือ 1
>>> (เลื่อนขวาด้วยศูนย์) ตัวดำเนินการนี้เหมือนกับตัวดำเนินการ >> ยกเว้นว่าบิตที่เลื่อนไปทางซ้ายจะเป็นศูนย์เสมอ (A >>> 1) คือ 1

ผู้ดำเนินการมอบหมาย

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
= (การมอบหมายอย่างง่าย) กำหนดค่าจากตัวถูกดำเนินการด้านขวาไปยังตัวถูกดำเนินการด้านซ้าย C = A + B จะกำหนดค่าของ A + B ให้เป็น C
+ = (เพิ่มและมอบหมายงาน) เพิ่มตัวถูกดำเนินการด้านขวาให้กับตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C + = A เทียบเท่ากับ C = C + A
- = (ลบและมอบหมาย) มันจะลบตัวถูกดำเนินการด้านขวาออกจากตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C - = A เทียบเท่ากับ C = C - A
* = (การคูณและการกำหนด) มันจะคูณตัวถูกดำเนินการด้านขวากับตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C * = A เทียบเท่ากับ C = C * A
/ = (การแบ่งและการมอบหมาย) มันแบ่งตัวถูกดำเนินการด้านซ้ายด้วยตัวถูกดำเนินการด้านขวาและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย

Note - ตรรกะเดียวกันนี้ใช้กับตัวดำเนินการ Bitwise ดังนั้นจึงกลายเป็น << =, >> =, >> =, & =, | = และ ^ =

ตัวดำเนินการเบ็ดเตล็ด

ตัวดำเนินการปฏิเสธ (-)

เปลี่ยนสัญลักษณ์ของค่า ลองมาเป็นตัวอย่าง

var x:number = 4 
var y = -x; 
console.log("value of x: ",x);   //outputs 4 
console.log("value of y: ",y);   //outputs -4

ในการคอมไพล์จะสร้างโค้ด JavaScript ต่อไปนี้

//Generated by typescript 1.8.10
var x = 4;
var y = -x;
console.log("value of x: ", x);   //outputs 4
console.log("value of y: ", y);   //outputs -4

มันจะให้ผลลัพธ์ดังต่อไปนี้ -

value of x:  4 
value of y:  -4

ตัวดำเนินการสตริง: ตัวดำเนินการต่อ (+)

ตัวดำเนินการ + เมื่อใช้กับสตริงจะผนวกสตริงที่สองเข้ากับสตริงแรก ตัวอย่างต่อไปนี้ช่วยให้เราเข้าใจแนวคิดนี้

var msg:string = "hello"+"world" 
console.log(msg)

ในการคอมไพล์จะสร้างโค้ด JavaScript ต่อไปนี้

//Generated by typescript 1.8.10
var msg = "hello" + "world";
console.log(msg);

มันจะให้ผลลัพธ์ดังต่อไปนี้ -

helloworld

การดำเนินการต่อไม่ได้เพิ่มช่องว่างระหว่างสตริง หลายสตริงสามารถเชื่อมต่อกันในคำสั่งเดียว

ตัวดำเนินการตามเงื่อนไข (?)

ตัวดำเนินการนี้ใช้เพื่อแสดงนิพจน์เงื่อนไข ตัวดำเนินการตามเงื่อนไขบางครั้งเรียกอีกอย่างว่าตัวดำเนินการตามเงื่อนไข ไวยากรณ์เป็นไปตามที่ระบุด้านล่าง -

Test ? expr1 : expr2
  • Test - หมายถึงนิพจน์เงื่อนไข

  • expr1 - ค่าที่ส่งคืนหากเงื่อนไขเป็นจริง

  • expr2 - ค่าที่ส่งคืนหากเงื่อนไขเป็นเท็จ

ลองดูรหัสต่อไปนี้ -

var num:number = -2 
var result = num > 0 ?"positive":"non-positive" 
console.log(result)

บรรทัดที่ 2 ตรวจสอบว่าค่าในตัวแปร numมีค่ามากกว่าศูนย์ ถ้าnum ถูกตั้งค่าเป็นค่าที่มากกว่าศูนย์จะส่งกลับสตริง "บวก" มิฉะนั้นสตริง "ไม่ใช่บวก" จะส่งกลับ

ในการคอมไพล์จะสร้างโค้ด JavaScript ต่อไปนี้

//Generated by typescript 1.8.10
var num = -2;
var result = num > 0 ? "positive" : "non-positive";
console.log(result);

ข้อมูลโค้ดด้านบนจะสร้างผลลัพธ์ต่อไปนี้ -

non-positive

พิมพ์ Operators

ตัวดำเนินการ typeof

เป็นตัวดำเนินการแบบยูนารี ตัวดำเนินการนี้ส่งคืนชนิดข้อมูลของตัวถูกดำเนินการ ดูตัวอย่างต่อไปนี้ -

var num = 12 
console.log(typeof num);   //output: number

ในการคอมไพล์จะสร้างโค้ด JavaScript ต่อไปนี้

//Generated by typescript 1.8.10
var num = 12;
console.log(typeof num);   //output: number

มันจะให้ผลลัพธ์ดังต่อไปนี้ -

number

อินสแตนซ์ของ

ตัวดำเนินการนี้สามารถใช้เพื่อทดสอบว่าวัตถุเป็นประเภทที่ระบุหรือไม่ การใช้instanceof จะกล่าวถึงตัวดำเนินการในบทนี้ classes.