Uncaught SyntaxError:
missing ) after argument list
웹 프로그래밍을 하다 보면 흔히 발생하는 문법 오류가 있다.
그중 위와 같은 오류가 발생했다면, (경험상) 대부분 세 가지 오류에 해당된다.
01 괄호 오류
정말 말 그대로 괄호를 빼먹은 케이스다.
JSTL을 사용 한다면, '}' 또는 '{'를 실수로 빼먹을 수도 있고
'(' 또는 ')' 를 빼먹을 수도 있으니 브라우저의 콘솔로 확인해보자.
02 ' 또는 " 오류
실수로 ' 또는 "를 추가로 넣은 경우 발생한다.
예를 들어, 아래처럼 입력하면 오류가 나지 않는데,
var aa = "뿌잉 뿌잉";
var bb = "오빠 " + aa;
var tmp = "오빠" aa; 또는 var tmp = "오빠 + aa;
와 같은 실수를 하는 사람들이 없진 않다.
특히 HTML 태그에 onclick 함수에 동적 파라미터를 넣을 때 실수를 한다.
03 데이터 오류
이번에 경험한 오류는 바로 JSON 데이터에서 발생했다.
데이터를 JS의 JSON.parse(); 에서 호출하는데, 스트링 안에 ' 가 포함되어 있었다.
> 오류가 난 데이터 : "AB'C"
그러다 보니 function( 'AB'C' ); 와 같이 되어야 하는데, function( 'AB'C' ); 로 인식되어
스크립트에서는 마지막에 ')' 괄호를 문자로 인식해 버렸다.
이럴 때는 컨트롤러 단에서 특수 문자 치환이 필요하다.
for(int i=0; i<list.size(); i++) {
String tmp = (String) list.get(i).get("text");
list.get(i).put("text", tmp.replace("'", "'"));
}
결국 '를 ' 로 치환하여 HTML에서 문자열로 인식하게 변경한 것이다.
아래는 HTML에서 특수 문자로 인식할 수 있어 치환이 필요한 대표적인 문자들이다.
^ ^
' '
> >
< <
; ;
& &
" "
# #
끝~!ㅋ
'[개발] Programming > Javascript' 카테고리의 다른 글
자바스크립트 로그 찍기 : console.log (콘솔 디버깅) (0) | 2022.12.08 |
---|---|
자바스크립트 노드(태그) 리스트 조회하는 함수 - querySelectorAll() (0) | 2021.07.27 |
자바스크립트, 태그에 이벤트 함수 바인딩하기 - addEventListener() (0) | 2021.07.25 |
자바스크립트 document.getElementById() - id로 dom 요소 찾기 (0) | 2021.07.20 |
마우스 스크롤 시 실행되는 jQuery 함수 - window scroll (0) | 2021.03.20 |
댓글