การใช้งานที่ไม่เหมาะสมของ JavaScript
บทนี้เราจะหารือเกี่ยวกับการใช้งานของข้อผิดพลาดจาวาสคริปต์
การประยุกต์ใช้ตัวดำเนินการกำหนดข้อผิดพลาด
ในโปรแกรม JavaScript ถ้าคุณใช้คำสั่งเงื่อนไขถ้าผู้ประกอบการที่ได้รับมอบหมายเป็นสัญญาณเท่ากับ (=) จะสร้างผลผิดพลาดแนวทางที่ถูกต้องคือการใช้การเปรียบเทียบสองสัญญาณเท่ากับ (==)
ถ้ามีคำสั่งเงื่อนไขกลับเท็จ (เราคาดว่า) เพราะ x ไม่เท่ากับ 10:
ถ้ามีคำสั่งเงื่อนไขผลตอบแทนจริง (ไม่ได้ว่าเราคาดหวัง) คำสั่งจะถูกดำเนินการเพราะเงื่อนไขสำหรับการกำหนด x 10,10 เป็นจริง:
ถ้ามีคำสั่งเงื่อนไขกลับเท็จ (ไม่ได้เป็นสิ่งที่เราคาดหวัง) คำสั่งจะถูกดำเนินการเพราะเงื่อนไขสำหรับการกำหนด x 0,0 เป็นเท็จ
ส่งกลับค่าของการกำหนดตัวแปร |
เปรียบเทียบข้อผิดพลาดที่พบบ่อย
ในการเปรียบเทียบธรรมดาชนิดข้อมูลจะถูกละเว้นถ้าคำสั่งเงื่อนไขต่อผลตอบแทนจริง:
ในการดำเนินการเปรียบเทียบอย่างเข้มงวดการคำนวณตัวตน === ประกอบการในขณะที่มูลค่าของการแสดงออกของการตรวจสอบชนิดที่เงื่อนไขต่อไปนี้ถ้ามีคำสั่งกลับเท็จ:
ข้อผิดพลาดนี้มักจะเกิดขึ้นในงบเปลี่ยนสลับคำสั่งผู้ประกอบการคำนวณโดยใช้บัตรประจำตัว (===) ถูกนำมาเปรียบเทียบ:
ตัวอย่างต่อไปนี้จะดำเนินการแจ้งเตือนป๊อป:
ตัวอย่างต่อไปนี้จะไม่สอดคล้องกันเพราะคนประเภทที่ไม่ได้ดำเนินการป๊อปอัปแจ้งเตือน:
การเพิ่มและการพิจารณาการเชื่อมต่อ
นอกเหนือจากตัวเลขสองเข้าด้วยกัน
สตริงการเชื่อมต่อการเชื่อมต่อทั้งสอง
นอกจากนี้และ JavaScript มีการเชื่อมต่อโดยใช้ผู้ประกอบการด้าน +
ต่อไปเราจะเห็นตัวเลขสองเข้าด้วยกันและเชื่อมต่อกับสตริงของตัวเลขและความแตกต่างโดยวิธีการเช่น:
ตัวแปรที่ใช้เพิ่มผลลัพธ์ที่ไม่สอดคล้องกัน:
var Y = 5;
var Z = X + Y; ผลการค้นหา // Z คือ 15
var x = 10;
var Y = "5";
var Z = X + Y; ผลการค้นหา // Z คือ "105"
ลอง»
หมายเหตุการใช้จุดลอยตัวข้อมูล
JavaScript ข้อมูลทั้งหมดจะขึ้นอยู่กับ 64 บิตชนิดข้อมูลจุดลอยตัว (float) เพื่อจัดเก็บ
การเขียนโปรแกรมภาษาทั้งหมดรวมถึง JavaScript เพื่อความถูกต้องลอยจุดของข้อมูลที่เป็นเรื่องยากที่จะตรวจสอบ:
ผมแก้ปัญหานี้คุณสามารถใช้การคูณจำนวนเต็มและหมวดการแก้:
JavaScript สาขาสตริง
เราใช้เส้นแบ่งที่จะเรียกใช้คำสั่ง JavaScript ในสตริง:
อย่างไรก็ตามในสตริงกลับสายการบินโดยตรงจะถูกรับสำหรับ:
เราสามารถเลือกเครื่องมือในการพัฒนาหรือกด F12 เพื่อดูข้อผิดพลาด:
แบ่งบรรทัดสตริงต้องใช้เครื่องหมาย (\) ดังต่อไปนี้:
อัฒภาคผิด
ตัวอย่างต่อไปนี้เนื่องจากผิดอัฒภาคถ้าบล็อกคำสั่งของรหัสที่จะไม่ได้รับการดำเนินการ:
กลับข้อควรระวังคำสั่ง
JavaScript เป็นค่าเริ่มต้นจะสิ้นสุดลงโดยอัตโนมัติในบรรทัดสุดท้ายของรหัส
สองตัวอย่างต่อไปกลับผลเดียวกัน (ไม่อัฒภาค):
JavaScript นอกจากนี้ยังสามารถนำมาใช้เพื่อยุติคำสั่งหลายคู่สาย
ตัวอย่างต่อไปนี้กลับผลเดียวกัน:
อย่างไรก็ตามตัวอย่างต่อไปนี้ผลจะถูกส่งกลับไม่ได้กำหนด:
เหตุใดจึงมีผลเช่น? เพราะใน JavaScript ตัวอย่างของการที่สอดคล้องกัน 4 และรหัสต่อไปนี้:
function myFunction(a) { var power = 10; return; // 分号结束,返回 undefined a * power; }
แก้ไข
ถ้ามันเป็นคำสั่งที่ไม่สมบูรณ์ดังต่อไปนี้:
var
JavaScript จะพยายามที่จะอ่านคำสั่งบรรทัดที่สอง:
power = 10;
แต่เนื่องจากคำสั่งนี้เป็นที่สมบูรณ์แบบ:
return
JavaScript จะปิดโดยอัตโนมัติคำสั่ง:
return;
ใน JavaScript, อัฒภาคเป็นตัวเลือก
ตั้งแต่กลับเป็นประโยคที่สมบูรณ์ก็จะปิดคำสั่งกลับ JavaScript
หมายเหตุ: อย่าทำลายเส้นของคำสั่งส่งคืนมา |
ใช้ชื่อดัชนีอาร์เรย์
การเขียนโปรแกรมภาษาจำนวนมากให้ใช้ชื่อเป็นดัชนีอาร์เรย์
ใช้ชื่อเป็นดัชนีของอาร์เรย์ที่เรียกว่าอาเรย์ (หรือกัญชา)
JavaScript ไม่สนับสนุนการใช้ชื่อที่จะอาร์เรย์ดัชนีเพียงตัวเลขดัชนี
ตัวอย่าง
คน [0] = "จอห์น" ;
คน [1] = "โด" ;
คน [2] = 46;
var x = person.length; // Person.length ผลตอบแทน 3
var Y = คน [0]; // คน [0] ส่งกลับ "จอห์น"
ลอง»
ใน JavaScript ใช้ชื่อของวัตถุที่เป็นดัชนี
หากคุณใช้ชื่อเป็นดัชนีเมื่อมีการเข้าถึงอาร์เรย์ JavaScript จะ redefine อาร์เรย์มาตรฐานของวัตถุ
หลังจากการดำเนินการดำเนินการนี้วิธีการและคุณสมบัติของอาร์เรย์จะไม่ถูกนำมาใช้มิฉะนั้นจะเกิดข้อผิดพลาด:
ตัวอย่าง
คน [ "firstName"] = " จอห์น";
คน [ "นามสกุล"] = " โด";
คน [ "อายุ"] = 46 ;
var x = person.length; // person.length กลับ 0
var Y = คน [0]; // คน [0] ส่งกลับไม่ได้กำหนด
ลอง»
กำหนดองค์ประกอบอาร์เรย์และในที่สุดก็ไม่สามารถเพิ่มเครื่องหมายจุลภาค
ข้อผิดพลาดจะถูกกำหนด:
points = [40, 100, 1, 5, 25, 10,];
ความหมายที่ถูกต้องของวิธีการ:
points = [40, 100, 1, 5, 25, 10];
กำหนดวัตถุและในที่สุดก็ไม่สามารถเพิ่มเครื่องหมายจุลภาค
ข้อผิดพลาดจะถูกกำหนด:
websites = {site:"本教程", url:"www.w3write.com", like:460,}
ความหมายที่ถูกต้องของวิธีการ:
websites = {site:"本教程", url:"www.w3write.com", like:460}
ไม่ได้กำหนดไม่เป็นโมฆะ
ใน JavaScript, null สำหรับวัตถุที่ไม่ได้กำหนดตัวแปร, คุณสมบัติและวิธีการ
วัตถุที่มีการกำหนดไว้เพียงเป็นไปได้เป็นโมฆะไม่ได้กำหนดไว้เป็นอย่างอื่น
ถ้าเราต้องการที่จะทดสอบว่าการปรากฏตัวของวัตถุเมื่อวัตถุไม่ได้กำหนดยังจะโยนความผิดพลาด
การใช้งานที่ไม่ถูกต้อง:
if (myObj !== null && typeof myObj !== "undefined")
วิธีที่ถูกต้องคือการที่เราจำเป็นต้องใช้ typeof การตรวจสอบว่าวัตถุที่ได้รับการกำหนด:
if (typeof myObj !== "undefined" && myObj !== null)
บล็อกขอบเขต
JavaScript ไม่สร้างขอบเขตใหม่ในรหัสแต่ละบล็อกขอบเขตทั่วไปของรหัสแต่ละบล็อกมีทั่วโลก
ตัวแปรรหัสต่อไปนี้ผมจะส่งกลับ 10 แทนไม่ได้กำหนด: