บทความนี้สรุปปัญหาที่พบบ่อยในนิยามฟังก์ชัน JavaScript มันมีข้อผิดพลาดทั่วไปที่เกิดขึ้นโดยผู้เริ่มต้น แบ่งปันสำหรับการอ้างอิงของคุณ สรุปเฉพาะมีดังนี้:
1. ในเวลาเดียวกันกับการประกาศฟังก์ชั่นเครื่องยนต์ JS ยังกำหนดตัวแปรที่มีชื่อเดียวกับชื่อฟังก์ชัน เมื่อเราเรียกฟังก์ชั่นนี้เรากำลังใช้ตัวแปรนี้จริง ๆ และสามารถเรียกได้ก่อนการประกาศฟังก์ชันเช่น
foo (); // ตัวแปรฟังก์ชันถูกใช้จริงที่นี่ฟังก์ชั่น foo () {แจ้งเตือน ('สวัสดี'); -2. ฟังก์ชั่นนิพจน์ในเวลานี้ฟังก์ชั่นที่ไม่ระบุชื่อจะถูกกำหนดให้กับตัวแปรซึ่งจำเป็นต้องใช้หลังจากการกำหนดเช่น
foo (); // มีการรายงานข้อผิดพลาด, var foo ที่ไม่ได้กำหนด = ฟังก์ชัน () {Alert ('Hello'); -3. นิพจน์ฟังก์ชั่น (ด้วยชื่อฟังก์ชั่น) การใช้งานนี้จะหลีกเลี่ยงได้ดีที่สุด ในเวลานี้ชื่อฟังก์ชั่นมีให้ภายในเฉพาะในเบราว์เซอร์ที่ไม่ใช่ IE เท่านั้น
บาร์ (5); // มีการรายงานข้อผิดพลาด, var bar ที่ไม่ได้กำหนด = function foo (n) {ถ้า (n == 1) ส่งคืน 1; อื่น ๆ กลับ n * foo (n - 1); } foo (5); // ไม่ได้รายงานข้อผิดพลาดคือแถบที่ไม่ได้กำหนด (5); //ถูกต้อง4. คำจำกัดความด้วยฟังก์ชั่นคอนสตรัคเตอร์วิธีนี้ไม่มีประสิทธิภาพ ทุกครั้งที่มีการดำเนินการฟังก์ชั่นร่างกายฟังก์ชั่นของมันจะถูกแยกวิเคราะห์หนึ่งครั้ง นอกจากนี้ฟังก์ชั่นที่ประกาศด้วยวิธีนี้จะไม่สืบทอดขอบเขตของตำแหน่งที่ประกาศในปัจจุบัน มันจะมีขอบเขตส่วนกลางตามค่าเริ่มต้นเท่านั้น
function foo () {var bar = 'hello'; ฟังก์ชั่น return ('Alert (bar)'); // มีการรายงานข้อผิดพลาดแถบตัวแปรส่วนกลางไม่ได้กำหนดไว้} foo () ();ฉันเชื่อว่าคำอธิบายในบทความนี้มีค่าอ้างอิงบางอย่างสำหรับการเรียนรู้ของทุกคนเกี่ยวกับการเขียนโปรแกรมเว็บ JavaScript