บทช่วยสอน การใช้งานที่ไม่เหมาะสมของ JavaScript ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ การประยุกต์ใช้ตัวดำเนินการกำหนดข้อผิดพลาด,เปรียบเทียบข้อผิดพลาดที่พบบ่อย,การเพิ่มและการพิจารณาการเชื่อมต่อ,หมายเหตุการใช้จุดลอยตัวข้อมูล,JavaScript สาขาสตริง,อัฒภาคผิด,กลับข้อควรระวังคำสั่ง,ใช้ชื่อดัชนีอาร์เรย์,กำหนดองค์ประกอบอาร์เรย์และในที่สุดก็ไม่สามารถเพิ่มเครื่องหมายจุลภาค,กำหนดวัตถุและในที่สุดก็ไม่สามารถเพิ่มเครื่องหมายจุลภาค,ไม่ได้กำหนดไม่เป็นโมฆะ,บล็อกขอบเขต,

การใช้งานที่ไม่เหมาะสมของ JavaScript

บทนี้เราจะหารือเกี่ยวกับการใช้งานของข้อผิดพลาดจาวาสคริปต์


การประยุกต์ใช้ตัวดำเนินการกำหนดข้อผิดพลาด

ในโปรแกรม JavaScript ถ้าคุณใช้คำสั่งเงื่อนไขถ้าผู้ประกอบการที่ได้รับมอบหมายเป็นสัญญาณเท่ากับ (=) จะสร้างผลผิดพลาดแนวทางที่ถูกต้องคือการใช้การเปรียบเทียบสองสัญญาณเท่ากับ (==)

ถ้ามีคำสั่งเงื่อนไขกลับเท็จ (เราคาดว่า) เพราะ x ไม่เท่ากับ 10:

var x = 0;
ถ้า (x == 10)

ลอง»

ถ้ามีคำสั่งเงื่อนไขผลตอบแทนจริง (ไม่ได้ว่าเราคาดหวัง) คำสั่งจะถูกดำเนินการเพราะเงื่อนไขสำหรับการกำหนด x 10,10 เป็นจริง:

var x = 0;
ถ้า (x = 10)

ลอง»

ถ้ามีคำสั่งเงื่อนไขกลับเท็จ (ไม่ได้เป็นสิ่งที่เราคาดหวัง) คำสั่งจะถูกดำเนินการเพราะเงื่อนไขสำหรับการกำหนด x 0,0 เป็นเท็จ

var x = 0;
ถ้า (x = 0)

ลอง»
หมายเหตุ ส่งกลับค่าของการกำหนดตัวแปร

เปรียบเทียบข้อผิดพลาดที่พบบ่อย

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

var x = 10;
var Y = "10";
ถ้า (x == y)

ลอง»

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

var x = 10;
var Y = "10";
ถ้า (x === Y)

ลอง»

ข้อผิดพลาดนี้มักจะเกิดขึ้นในงบเปลี่ยนสลับคำสั่งผู้ประกอบการคำนวณโดยใช้บัตรประจำตัว (===) ถูกนำมาเปรียบเทียบ:

ตัวอย่างต่อไปนี้จะดำเนินการแจ้งเตือนป๊อป:

var x = 10;
สวิทช์ (x) {
กรณีที่ 10: การแจ้งเตือน ( "Hello" );
}

ลอง»

ตัวอย่างต่อไปนี้จะไม่สอดคล้องกันเพราะคนประเภทที่ไม่ได้ดำเนินการป๊อปอัปแจ้งเตือน:

var x = 10;
สวิทช์ (x) {
กรณี "10": การแจ้งเตือน ( " สวัสดี");
}

ลอง»

การเพิ่มและการพิจารณาการเชื่อมต่อ

นอกเหนือจากตัวเลขสองเข้าด้วยกัน

สตริงการเชื่อมต่อการเชื่อมต่อทั้งสอง

นอกจากนี้และ JavaScript มีการเชื่อมต่อโดยใช้ผู้ประกอบการด้าน +

ต่อไปเราจะเห็นตัวเลขสองเข้าด้วยกันและเชื่อมต่อกับสตริงของตัวเลขและความแตกต่างโดยวิธีการเช่น:

var x = 10 + 5; // x 15 ผลการค้นหา
var x = 10 + "5" ; ผลการค้นหา // X คือ "105"

ลอง»

ตัวแปรที่ใช้เพิ่มผลลัพธ์ที่ไม่สอดคล้องกัน:

var x = 10;
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 เพื่อความถูกต้องลอยจุดของข้อมูลที่เป็นเรื่องยากที่จะตรวจสอบ:

var x = 0.1;
var Y = 0.2;
var Z = X + Y ผลการค้นหา // Z 0.3
ถ้า (Z == 0.3) // กลับเท็จ

ลอง»

ผมแก้ปัญหานี้คุณสามารถใช้การคูณจำนวนเต็มและหมวดการแก้:

ตัวอย่าง

var Z = (x * 10 + Y * 10) / 10; // ผล Z 0.3

ลอง»

JavaScript สาขาสตริง

เราใช้เส้นแบ่งที่จะเรียกใช้คำสั่ง JavaScript ในสตริง:

ตัวอย่างที่ 1

var x =
"Hello World!";

ลอง»

อย่างไรก็ตามในสตริงกลับสายการบินโดยตรงจะถูกรับสำหรับ:

ตัวอย่างที่ 2

var x = "สวัสดี
โลก! ";

ลอง»

เราสามารถเลือกเครื่องมือในการพัฒนาหรือกด F12 เพื่อดูข้อผิดพลาด:

แบ่งบรรทัดสตริงต้องใช้เครื่องหมาย (\) ดังต่อไปนี้:

ตัวอย่างที่ 3

var x = "สวัสดี \
โลก! ";

ลอง»

อัฒภาคผิด

ตัวอย่างต่อไปนี้เนื่องจากผิดอัฒภาคถ้าบล็อกคำสั่งของรหัสที่จะไม่ได้รับการดำเนินการ:

ถ้า (x == 19);
{
// การป้องกันรหัส
}

ลอง»

กลับข้อควรระวังคำสั่ง

JavaScript เป็นค่าเริ่มต้นจะสิ้นสุดลงโดยอัตโนมัติในบรรทัดสุดท้ายของรหัส

สองตัวอย่างต่อไปกลับผลเดียวกัน (ไม่อัฒภาค):

ตัวอย่างที่ 1

ฟังก์ชั่น myFunction (ก) {
อำนาจ var = 10
คืนอำนาจ * a
}

ลอง»

ตัวอย่างที่ 2

ฟังก์ชั่น myFunction (ก) {
อำนาจ var = 10;
คืนอำนาจ * a;
}

ลอง»

JavaScript นอกจากนี้ยังสามารถนำมาใช้เพื่อยุติคำสั่งหลายคู่สาย

ตัวอย่างต่อไปนี้กลับผลเดียวกัน:

ตัวอย่างที่ 3

ฟังก์ชั่น myFunction (ก) {
var
พลังงาน = 10;
คืนอำนาจ * a;
}

ลอง»

อย่างไรก็ตามตัวอย่างต่อไปนี้ผลจะถูกส่งกลับไม่ได้กำหนด:

ตัวอย่างที่ 4

ฟังก์ชั่น myFunction (ก) {
var
พลังงาน = 10;
กลับ
อำนาจ *;
}

ลอง»

เหตุใดจึงมีผลเช่น? เพราะใน JavaScript ตัวอย่างของการที่สอดคล้องกัน 4 และรหัสต่อไปนี้:

function myFunction(a) {
    var
    power = 10;  
    return;       // 分号结束,返回 undefined
    a * power;
}

แก้ไข

ถ้ามันเป็นคำสั่งที่ไม่สมบูรณ์ดังต่อไปนี้:

var

JavaScript จะพยายามที่จะอ่านคำสั่งบรรทัดที่สอง:

power = 10;

แต่เนื่องจากคำสั่งนี้เป็นที่สมบูรณ์แบบ:

return

JavaScript จะปิดโดยอัตโนมัติคำสั่ง:

return;

ใน JavaScript, อัฒภาคเป็นตัวเลือก

ตั้งแต่กลับเป็นประโยคที่สมบูรณ์ก็จะปิดคำสั่งกลับ JavaScript

หมายเหตุหมายเหตุ: อย่าทำลายเส้นของคำสั่งส่งคืนมา

ใช้ชื่อดัชนีอาร์เรย์

การเขียนโปรแกรมภาษาจำนวนมากให้ใช้ชื่อเป็นดัชนีอาร์เรย์

ใช้ชื่อเป็นดัชนีของอาร์เรย์ที่เรียกว่าอาเรย์ (หรือกัญชา)

JavaScript ไม่สนับสนุนการใช้ชื่อที่จะอาร์เรย์ดัชนีเพียงตัวเลขดัชนี

ตัวอย่าง

คน var = [];
คน [0] = "จอห์น" ;
คน [1] = "โด" ;
คน [2] = 46;
var x = person.length; // Person.length ผลตอบแทน 3
var Y = คน [0]; // คน [0] ส่งกลับ "จอห์น"

ลอง»

ใน JavaScript ใช้ชื่อของวัตถุที่เป็นดัชนี

หากคุณใช้ชื่อเป็นดัชนีเมื่อมีการเข้าถึงอาร์เรย์ JavaScript จะ redefine อาร์เรย์มาตรฐานของวัตถุ

หลังจากการดำเนินการดำเนินการนี้วิธีการและคุณสมบัติของอาร์เรย์จะไม่ถูกนำมาใช้มิฉะนั้นจะเกิดข้อผิดพลาด:

ตัวอย่าง

คน var = [];
คน [ "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 แทนไม่ได้กำหนด:

ตัวอย่าง

สำหรับ (var i = 0; ฉัน <10; i ++) {
// รหัสบาง
}
กลับฉัน;

ลอง»
การใช้งานที่ไม่เหมาะสมของ JavaScript
10/30