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.