Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

JavaScript SyntaxError:หายไป ) หลังจากรายการอาร์กิวเมนต์ Solution

JavaScript อาศัยวงเล็บเพื่อให้ทราบว่าการเรียกใช้ฟังก์ชันเริ่มต้นและสิ้นสุดที่ใด หากคุณพลาดไวยากรณ์ก่อนที่จะปิดฟังก์ชัน คุณจะพบข้อผิดพลาด "SyntaxError:missing ) หลังจากรายการอาร์กิวเมนต์"

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

SyntaxError:missing ) หลังรายการอาร์กิวเมนต์

ข้อความ "หายไป ) หลังจากรายการอาร์กิวเมนต์" บอกเราว่ามีข้อผิดพลาดทางไวยากรณ์ในการเรียกใช้ฟังก์ชัน

สิ่งนี้อาจเกิดขึ้นหากคุณเพิ่มเครื่องหมายจุลภาคที่ส่วนท้ายของรายการอาร์กิวเมนต์ที่ไม่ได้ตามด้วยอาร์กิวเมนต์อื่น

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

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

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

ตัวอย่างสถานการณ์

เราจะเขียนโปรแกรมที่คำนวณว่านักเรียนสอบผ่านหรือสอบตกที่โรงเรียนหรือไม่ ในการเริ่มต้น ให้กำหนดเกรดที่นักเรียนได้รับและข้อความที่เราจะพิมพ์ไปที่คอนโซลเพื่อแจ้งให้เราทราบว่านักเรียนผ่านหรือล้มเหลว:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

var grade = 57;
var message = "This student has X their test.";

"ข้อความ" ของตัวแปร JavaScript มีตัวอักษรตัวแทน X เราจะแทนที่สิ่งนี้ด้วย "ผ่าน" หรือ "ล้มเหลว" ในภายหลังในโปรแกรมของเรา

หากเกรดของนักเรียนเกิน 53 แสดงว่าผ่านการทดสอบ มิฉะนั้นพวกเขาล้มเหลว

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

if (grade > 53) {
	message.replace("X," "passed");
} else {
	message.replace("X", "failed");
}

เราใช้คำสั่ง if และ one else เพื่อประเมินว่านักเรียนสอบผ่านหรือล้มเหลว ถ้า if คำสั่งประเมินเป็นจริงค่าของ "X" ในสตริง "ข้อความ" ของเราจะกลายเป็น "ผ่าน"; มิฉะนั้นค่าของ "X" จะกลายเป็น "ล้มเหลว"

เมื่อเราได้เขียนข้อความที่แจ้งให้เราทราบว่านักเรียนผ่านการทดสอบหรือไม่ เราสามารถพิมพ์ข้อความนั้นไปยังคอนโซล JavaScript:

console.log(message);

เรียกใช้รหัสของเราและดูว่าเกิดอะไรขึ้น:

Uncaught SyntaxError: missing ) after argument list

รหัสของเราส่งคืนข้อผิดพลาดทางไวยากรณ์

การแก้ปัญหา

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

มาดูการเรียกฟังก์ชันของเรากัน:

message.replace("X," "passed");
message.replace("X", "failed");

แม้ว่าข้อความสั่งที่สองจะดูเหมือนถูกต้องตามหลักไวยากรณ์ แต่คำสั่งแรกมีข้อผิดพลาด เราได้เพิ่มเครื่องหมายจุลภาคในสตริงแรกของเรา แทนที่จะใส่หลังสตริงแรกของเรา สังเกตคำสั่ง “X” ใน replace() . แรก เรียก.

สิ่งนี้ทำให้รายการอาร์กิวเมนต์ของเรามีค่าสองค่าที่ปรากฏต่อจากกัน นี่เป็นไวยากรณ์ที่ไม่ถูกต้อง อาร์กิวเมนต์ต้องคั่นด้วยเครื่องหมายจุลภาค

เพื่อแก้ไขข้อผิดพลาดนี้ เราจะย้ายเครื่องหมายจุลภาคจากภายในสตริง “X” ไปยังนอกสตริง:

message.replace("X", "passed");

เราได้ย้ายเครื่องหมายจุลภาคออกไปนอกสตริง มารันโค้ดของเรากันและดูว่าใช้งานได้หรือไม่

รหัสของเราส่งคืน:

"This student has passed their test."

รหัสของเราดำเนินการสำเร็จแล้ว!

บทสรุป

เกิดข้อผิดพลาด "SyntaxError:missing ) หลังจากรายการอาร์กิวเมนต์" หากไม่สามารถประเมินการเรียกใช้ฟังก์ชันได้อย่างถูกต้อง ในการแก้ไขข้อผิดพลาดนี้ ตรวจสอบให้แน่ใจว่าอาร์กิวเมนต์ของคุณมีรูปแบบที่ถูกต้อง ตรวจสอบอีกครั้งว่าอาร์กิวเมนต์ทั้งหมดในการเรียกใช้ฟังก์ชันถูกคั่นด้วยเครื่องหมายจุลภาค

ตอนนี้คุณมีความรู้ที่จำเป็นในการแก้ไขข้อผิดพลาดทางไวยากรณ์นี้อย่างผู้เชี่ยวชาญแล้ว!