การเปรียบเทียบ JavaScript และตัวดำเนินการเชิงตรรกะ
ตัวดำเนินการเปรียบเทียบและ ตรรกะใช้เพื่อทดสอบtrue
หรือ
false
ตัวดำเนินการเปรียบเทียบ
ตัวดำเนินการเปรียบเทียบใช้ในคำสั่งเชิงตรรกะเพื่อกำหนดความเท่าเทียมกันหรือความแตกต่างระหว่างตัวแปรหรือค่า
ระบุว่าx = 5
ตารางด้านล่างอธิบายตัวดำเนินการเปรียบเทียบ:
Operator | Description | Comparing | Returns | Try it |
---|---|---|---|---|
== | equal to | x == 8 | false | |
x == 5 | true | |||
x == "5" | true | |||
=== | equal value and equal type | x === 5 | true | |
x === "5" | false | |||
!= | not equal | x != 8 | true | |
!== | not equal value or not equal type | x !== 5 | false | |
x !== "5" | true | |||
x !== 8 | true | |||
> | greater than | x > 8 | false | |
< | less than | x < 8 | true | |
>= | greater than or equal to | x >= 8 | false | |
<= | less than or equal to | x <= 8 | true |
ใช้งานอย่างไร
ตัวดำเนินการเปรียบเทียบสามารถใช้ในคำสั่งแบบมีเงื่อนไขเพื่อเปรียบเทียบค่าและดำเนินการตามผลลัพธ์:
if (age < 18) text = "Too young to buy alcohol";
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการใช้คำสั่งแบบมีเงื่อนไขในบทถัดไปของบทช่วยสอนนี้
ตัวดำเนินการเชิงตรรกะ
ตัวดำเนินการทางลอจิกใช้เพื่อกำหนดตรรกะระหว่างตัวแปรหรือค่าต่างๆ
ระบุว่าx = 6
และy = 3
ตารางด้านล่างอธิบายตัวดำเนินการเชิงตรรกะ:
Operator | Description | Example | Try it |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | |
|| | or | (x == 5 || y == 5) is false | |
! | not | !(x == y) is true |
ตัวดำเนินการแบบมีเงื่อนไข (Ternary)
JavaScript ยังมีตัวดำเนินการตามเงื่อนไขที่กำหนดค่าให้กับตัวแปรตามเงื่อนไขบางอย่าง
ไวยากรณ์
variablename = (condition) ? value1:value2
ตัวอย่าง
let voteable = (age < 18) ? "Too young":"Old enough";
หากอายุที่เปลี่ยนแปลงได้มีค่าต่ำกว่า 18 ค่าของตัวแปรที่โหวตได้จะเป็น "เด็กเกินไป" มิฉะนั้น ค่าที่โหวตได้จะเป็น "เก่าเพียงพอ"
เปรียบเทียบประเภทต่างๆ
การเปรียบเทียบข้อมูลประเภทต่างๆ อาจให้ผลลัพธ์ที่ไม่คาดคิด
เมื่อเปรียบเทียบสตริงกับตัวเลข JavaScript จะแปลงสตริงเป็นตัวเลขเมื่อทำการเปรียบเทียบ สตริงว่างจะแปลงเป็น 0 สตริงที่ไม่ใช่ตัวเลขจะแปลงเป็นสตริง ที่มี ค่าNaN
เสมอfalse
Case | Value | Try |
---|---|---|
2 < 12 | true | |
2 < "12" | true | |
2 < "John" | false | |
2 > "John" | false | |
2 == "John" | false | |
"2" < "12" | false | |
"2" > "12" | true | |
"2" == "12" | false |
เมื่อเปรียบเทียบสองสตริง "2" จะมากกว่า "12" เนื่องจาก (ตามตัวอักษร) 1 น้อยกว่า 2
เพื่อให้ได้ผลลัพธ์ที่เหมาะสม ตัวแปรควรถูกแปลงเป็นชนิดที่เหมาะสมก่อนทำการเปรียบเทียบ:
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}