ความแตกต่างระหว่าง =, == และ === นิ้ว Javaสคริปต์ [ตัวอย่าง]
= ในคืออะไร Javaสคริปต์?
เท่ากับ (=) คือตัวดำเนินการกำหนดค่า ซึ่งกำหนดค่าตัวแปรทางด้านซ้ายของ = ให้เป็นค่าของนิพจน์ที่อยู่ทางด้านขวา ตัวดำเนินการนี้จะกำหนดค่า lvalue ให้กับ rvalue
เช่น เขียน a=10 ก็ใช้ได้ หากเราเขียน 10=10, 'a' = 10 หรือ 'a' = 'a' จะส่งผลให้เกิดข้อผิดพลาดในการอ้างอิง
== ในคืออะไร Javaสคริปต์?
Double equals (==) คือตัวดำเนินการเปรียบเทียบ ซึ่งจะแปลงตัวดำเนินการที่มีประเภทเดียวกันก่อนการเปรียบเทียบ
ดังนั้น เมื่อคุณเปรียบเทียบสตริงกับตัวเลข Javaสคริปต์จะแปลงสตริงใดๆ ให้เป็นตัวเลข สตริงว่างจะถูกแปลงเป็นศูนย์เสมอ สตริงที่ไม่มีค่าตัวเลขจะถูกแปลงเป็น NaN (ไม่ใช่ตัวเลข) ซึ่งส่งคืนค่าเท็จ
=== คืออะไร Javaสคริปต์?
=== (Triple equals) คือตัวดำเนินการเปรียบเทียบความเท่าเทียมอย่างเคร่งครัดใน Javaสคริปต์ที่คืนค่า false สำหรับค่าที่ไม่ใช่ประเภทเดียวกัน ตัวดำเนินการนี้จะทำการแปลงประเภทเพื่อความเท่าเทียมกัน หากเราเปรียบเทียบ 2 กับ "2" โดยใช้ === ก็จะคืนค่า false
ทำไมต้องใช้ = ใน Javaสคริปต์?
การใช้ = in ที่สำคัญมีดังนี้ Javaต้นฉบับ:
= Javaตัวดำเนินการสคริปต์กำหนดค่าให้กับตัวดำเนินการด้านซ้าย โดยขึ้นอยู่กับค่าของตัวดำเนินการที่มีอยู่ทางด้านขวา ตัวดำเนินการตัวแรกควรเป็นตัวแปร
ตัวดำเนินการกำหนดค่าพื้นฐานคือ = ซึ่งกำหนดค่าของตัวดำเนินการหนึ่งให้กับอีกตัวดำเนินการหนึ่ง กล่าวคือ a = b กำหนดค่าของ b ให้กับ a
ทำไมต้องใช้ == ใน Javaสคริปต์?
ต่อไปนี้เป็นการใช้งานที่สำคัญของ == in Javaสคริปต์:
ตัวดำเนินการ == เป็นตัวดำเนินการความเท่าเทียม โดยจะตรวจสอบว่าตัวดำเนินการทั้งสองตัวเหมือนกันหรือไม่ โดยเปลี่ยนนิพจน์จากประเภทข้อมูลหนึ่งไปเป็นอีกประเภทหนึ่ง คุณสามารถใช้ตัวดำเนินการ == เพื่อเปรียบเทียบเอกลักษณ์ของตัวดำเนินการสองตัว แม้ว่าจะไม่ใช่ประเภทเดียวกันก็ตาม
=== ทำงานอย่างไรกันแน่?
- ความเท่าเทียมกันที่เข้มงวด === ตรวจสอบว่าค่าสองค่าเหมือนกันหรือไม่
- ค่าจะไม่ถูกแปลงเป็นค่าอื่นโดยปริยายก่อนการเปรียบเทียบ
- หากค่าตัวแปรมีประเภทต่างกัน จะถือว่าค่าไม่เท่ากัน
- หากตัวแปรเป็นประเภทเดียวกัน ไม่ใช่ตัวเลข และมีค่าเท่ากัน จะถือว่าตัวแปรมีค่าเท่ากัน
- สุดท้าย หากค่าตัวแปรทั้งสองเป็นตัวเลข ค่าทั้งสองจะถือว่าเท่ากัน ถ้าทั้งสองไม่ใช่ NaN (ไม่ใช่ตัวเลข) และมีค่าเท่ากัน
ตัวอย่างของ =
ในโปรแกรมด้านล่าง มีตัวแปรสองตัวคือ “a” และ “b” เรากำลังเพิ่มและพิมพ์ค่าโดยใช้ตัวแปรตัวที่สาม “c” ผลรวมของค่าของตัวแปร “a” และ “b” คือ 7 ดังนั้น ผลลัพธ์ที่ได้คือ 7
<!DOCTYPE html> <html> <body> <h2>JavaScript Operators</h2> <p>a = 2, b = 5, calculate c = a + b, and display c:</p> <p id="demonstration"></p> <script> var a = 2; var b = 5; var c= a + b; document.getElementById("demonstration").innerHTML = c; </script> </body> </html>
Output:
a = 2, b = 5, คำนวณ c = a + b และแสดง c:
7
ตัวอย่างของ ==
ในโปรแกรมด้านล่างนี้ เราได้ประกาศตัวแปรหนึ่งตัว “a” ซึ่งมีค่าเป็น 10 สุดท้ายนี้ คำสั่ง a == 20 จะคืนค่าเท็จ เนื่องจากค่าของ a คือ 10
<!DOCTYPE html> <html> <body> <p id="demonstration"></p> <script> var a = 10; document.getElementById("demonstration").innerHTML = (a == 20); </script> </body> </html>
Output:
เท็จ
ตัวอย่าง ===
ในโปรแกรมด้านล่าง ค่าของตัวแปร x คือ 10 จะถูกเปรียบเทียบกับ 10 ที่เขียนในเครื่องหมายคำพูดคู่ ซึ่งถือว่าเป็น เชือกดังนั้นค่าจึงไม่เหมือนกันอย่างเคร่งครัด ผลลัพธ์ของโปรแกรมเป็นเท็จ
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var x = 10; document.getElementById("demo").innerHTML = (x === "10"); </script> </body> </html>
Output:
เท็จ
= กับ == VS === เข้า Javaต้นฉบับ
ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่าง =, == และ ===
= | == | === |
---|---|---|
= เข้า Javaสคริปต์ใช้สำหรับกำหนดค่าให้กับตัวแปร | == เข้า Javaสคริปต์นี้ใช้สำหรับเปรียบเทียบตัวแปรสองตัว แต่จะไม่สนใจชนิดข้อมูลของตัวแปร | === ใช้สำหรับเปรียบเทียบตัวแปรสองตัว แต่ตัวดำเนินการนี้จะตรวจสอบชนิดข้อมูลและเปรียบเทียบค่าสองค่าด้วย |
เรียกว่าเป็นตัวดำเนินการกำหนดค่า | เรียกว่าตัวดำเนินการเปรียบเทียบ | เรียกอีกอย่างหนึ่งว่าตัวดำเนินการเปรียบเทียบ |
ผู้ดำเนินการกำหนดสามารถประเมินค่าตามที่กำหนดได้ | ตรวจสอบความเท่าเทียมกันของตัวดำเนินการสองตัวโดยไม่พิจารณาประเภทของตัวดำเนินการ | เปรียบเทียบความเท่าเทียมกันของตัวดำเนินการสองตัวกับประเภทของตัวดำเนินการเหล่านั้น |
มันไม่คืนค่าจริงหรือเท็จ | คืนค่า true หากตัวดำเนินการทั้งสองเท่ากัน คืนค่า false หากตัวดำเนินการทั้งสองไม่เท่ากัน | มันจะคืนค่าจริงก็ต่อเมื่อทั้งค่าและประเภทข้อมูลเหมือนกันสำหรับตัวแปรทั้งสอง |
= เพียงกำหนดค่าตัวแปรหนึ่งให้กับอีกค่าหนึ่ง | == ทำการแก้ไขประเภทตามค่าของ ตัวแปร. | === นำประเภทของตัวแปรมาพิจารณา |
= จะไม่เปรียบเทียบค่าของตัวแปรใดๆทั้งสิ้น | == ตรวจสอบความเท่าเทียมกันหลังจากทำการสนทนาที่จำเป็นเท่านั้น | หากค่าตัวแปรสองค่าไม่เหมือนกัน === จะไม่ทำการแปลงใดๆ |
ความแตกต่างที่สำคัญ
- = ใช้สำหรับกำหนดค่าให้กับตัวแปร == ใช้สำหรับเปรียบเทียบตัวแปรสองตัว แต่จะไม่สนใจชนิดข้อมูลของตัวแปร ในขณะที่ === ใช้สำหรับเปรียบเทียบตัวแปรสองตัว แต่ตัวดำเนินการนี้จะตรวจสอบชนิดข้อมูลและเปรียบเทียบค่าสองค่าด้วย
- = เรียกว่าเป็นตัวดำเนินการกำหนดค่า ส่วน == เรียกว่าเป็นตัวดำเนินการเปรียบเทียบ ในขณะที่เรียกอีกอย่างว่าตัวดำเนินการเปรียบเทียบ
- = ไม่ส่งคืนค่า true หรือ false, == ส่งคืนค่า true เฉพาะเมื่อตัวดำเนินการทั้งสองเท่ากัน ในขณะที่ === ส่งคืนค่า true เฉพาะเมื่อค่าและชนิดข้อมูลทั้งสองเหมือนกันสำหรับตัวแปรทั้งสอง