JavaScript는 함수 호출이 시작되고 끝나는 위치를 알기 위해 대괄호를 사용합니다. 함수가 닫히기 전에 구문의 일부를 놓치면 "SyntaxError:missing ) after argument list" 오류가 발생합니다.
이 가이드에서는 이 오류의 의미와 발생 이유를 살펴봅니다. 이 문제의 예를 살펴보고 문제를 해결하기 위해 알아야 할 사항을 알아볼 수 있습니다.
SyntaxError:인수 목록 뒤에 ) 누락
"missing ) after argument list" 메시지는 함수 호출 내부에 구문 오류가 있음을 알려줍니다.
다른 인수가 뒤따르지 않는 인수 목록 끝에 쉼표를 추가하면 이런 일이 발생할 수 있습니다.
JavaScript는 각 쉼표 뒤에 다른 인수가 필요합니다. JavaScript가 다른 인수를 찾을 수 없으면 코드를 성공적으로 구문 분석할 수 없으며 닫는 괄호로 인해 구문 오류가 발생합니다.
이 솔루션의 또 다른 잠재적 원인은 문자열 내부의 함수에서 인수를 구분하는 데 필요한 쉼표를 묶는 것입니다.
이 오류가 발생하면 JavaScript 오류가 가리키는 코드의 모든 구문을 주의 깊게 읽으십시오. 모든 대괄호가 일치하는지 확인하고 함수 호출에서 쉼표를 올바르게 사용했는지 확인하세요.
예시 시나리오
우리는 학생이 학교에서 시험을 통과했는지 여부를 계산하는 프로그램을 작성할 것입니다. 시작하려면 학생이 받은 성적과 학생의 합격 또는 불합격 여부를 알려주는 콘솔에 인쇄할 메시지를 정의하겠습니다.
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
var grade = 57; var message = "This student has X their test.";
JavaScript 변수 "message"에는 자리 표시자 문자 X가 포함되어 있습니다. 나중에 프로그램에서 이것을 "passed" 또는 "failed"로 바꿀 것입니다.
학생의 학점이 53점 이상이면 시험에 합격한 것입니다. 그렇지 않으면 실패했습니다.
이제 학생의 성적을 정의했으므로 학생이 시험을 통과했는지 여부를 계산할 수 있습니다. 이를 위해 if 문을 사용할 것입니다.
if (grade > 53) { message.replace("X," "passed"); } else { message.replace("X", "failed"); }
if 문과 else 문을 사용하여 학생의 합격 또는 불합격 여부를 평가합니다. if
인 경우 문이 true로 평가되면 "message" 문자열의 "X" 값이 "passed"가 됩니다. 그렇지 않으면 "X" 값은 "실패"가 됩니다.
이제 학생이 테스트를 통과했는지 여부를 알려주는 메시지를 작성했으므로 해당 메시지를 JavaScript 콘솔에 인쇄할 수 있습니다.
console.log(message);
코드를 실행하고 어떤 일이 일어나는지 봅시다:
Uncaught SyntaxError: missing ) after argument list
우리 코드는 구문 오류를 반환합니다.
해결책
JavaScript는 함수 호출 중 하나에서 실수를 했기 때문에 코드를 평가할 수 없습니다. 인수 목록이 함수 호출에 존재하기 때문에 우리는 이것을 알고 있습니다.
함수 호출을 살펴보겠습니다.
message.replace("X," "passed"); message.replace("X", "failed");
두 번째 문장은 구문상 올바른 것처럼 보이지만 첫 번째 문장에는 오류가 있습니다. 첫 번째 문자열 대신에 첫 번째 문자열 안에 쉼표를 추가했습니다. 첫 번째 replace()
의 "X" 문에 주목하세요. 전화.
이것은 우리의 인수 목록이 서로 뒤에 나타나는 두 개의 값을 포함하도록 합니다. 이것은 잘못된 구문입니다. 인수는 쉼표로 구분해야 합니다.
이 오류를 수정하기 위해 "X" 문자열 내부에서 문자열 외부로 쉼표를 이동합니다.
message.replace("X", "passed");
쉼표를 문자열 외부로 옮겼습니다. 코드를 실행하고 작동하는지 봅시다.
코드는 다음을 반환합니다.
"This student has passed their test."
코드가 성공적으로 실행되었습니다!
결론
함수 호출을 올바르게 평가할 수 없는 경우 "SyntaxError:missing ) after argument list" 오류가 발생합니다. 이 오류를 수정하려면 인수 형식이 올바른지 확인하세요. 함수 호출의 모든 인수가 쉼표로 구분되어 있는지 다시 확인하십시오.
이제 전문가처럼 이 구문 오류를 수정하는 데 필요한 지식을 얻었습니다!