JavaScript 오류 (Uncaught SyntaxError : 예기치 않은 입력 끝)


211

FireFox에서는 작동하지만 Chrome 또는 IE에서는 작동하지 않는 JavaScript 코드가 있습니다.

Chrome JS 콘솔에서 다음 오류가 발생합니다.

"Uncaught SyntaxError : 예기치 않은 입력 끝".

사용중인 JavaScript 코드는 다음과 같습니다

<script>
 $(function() {
 $("#mewlyDiagnosed").hover(function() {
    $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
 }, function() {
    $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
 });
</script>

오류가 마지막 줄에 있다고 말합니다. });


2
DELETE응답이 204success 대신 200 인 경우 서버에서 Chrome의 V8 을 사용하면이 오류도 발생한다는 것을 알고 있습니다. 누군가가 이것을 얻는 경우를 대비하여 머리를 숙입니다. success - no response
Eric D. Johnson

답변:


401

두 번째를 추가하십시오 });.

제대로 들여 쓰기되면 코드가 읽 힙니다.

$(function() {
    $("#mewlyDiagnosed").hover(function() {
        $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
    }, function() {
        $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
    });
MISSING!

당신은 결코 외부를 닫지 않았습니다 $(function() {.


278
교훈은 항상 코드 를 들여 쓰고 올바르게 들여 쓰는 것입니다.
SLaks

4
오, VIM이 구문 오류를 잡았 으면 좋겠습니다. 부주의 한 구문 오류로 인해 시간이 얼마나 걸리는지 믿을 수 없습니다.
HeyWatch이

4
교훈은 항상 좋은 플러그인으로 훌륭한 편집기를 사용하는 것입니다.이 플러그인은 괄호 쌍을 감지하거나 강조 표시하거나 문제를 해결할 수 있습니다.
Sławomir Lenart

1
@HeyWatchThis Syntastic for Vim을 사용해 볼 수 있습니다.
Nathan Long

1
JavaScript 파일을 저장할 때마다 jshint를 실행하도록 vim / neovim에 neomake를 사용합니다. 구문 오류가있는 경우 vim / neovim의 거터에 경고 / 오류 기호가 표시됩니다. 커서를 해당 줄에 놓으면 vim / neovim 명령 줄에 오류가 무엇인지 알려주는 메시지가 표시됩니다.
trusktr

89

필자의 경우 빈 JSON을 구문 분석하려고했습니다.

JSON.parse(stringifiedJSON);

즉, 다음과 같은 상황이 발생했습니다.

JSON.parse("");

3
이것은, 불행히도 포함 $.parseJSONJQuery와 1.11.2의
나세르 알 - Wohaibi에게

37

http://jsbeautifier.org/ 는 축소 된 JS 코드를 들여 쓰는 데 도움이됩니다.

또한 Chrome 에서는 "예쁜 인쇄"를 사용할 수 있습니다. jquery.min.js내 브라우저에서 올바르게 들여 쓰기 된 Stack Overflow의 아래 스크린 샷 예를 참조하십시오. :)

여기에 이미지 설명을 입력하십시오


14

코드를 약간 포맷하면 내부 호버 기능 만 닫았습니다. 아래 표시된 외부 부품을 닫지 않았습니다.

$(// missing closing)
 function() { // missing closing }
     $("#mewlyDiagnosed").hover(
        function() {
            $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
        }, 
        function() {
            $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
        });

5

필자의 경우 Bookmarklet 에서 간단한 큰 따옴표 문제가 발생했습니다 .bookmarklet 에는 작은 따옴표 만 사용하십시오. 이것이 누군가를 돕는 경우를 대비하여.


3

자바 스크립트 북마크를 작성하려고 할 때이 오류가 발생했습니다. 원인을 파악할 수 없었습니다. :하지만 결국 나는 URL은 다음 웹 사이트를 통해, 북마크를 암호화하는 시도 http://mrcoles.com/bookmarklet/ 가 특별한 URL로 해석되는 자바 스크립트 코드에서 특정 문자에 문제가되어 있어야합니다, 그래서 오류가 도망 갔어요 다음과 제어 문자.


2
나는 // js에 // 주석을 달았는데, 북마크 북의 URL에 붙여 넣은 후 원했던 것보다 조금 더 주석을 달았습니다. 전체 코드를 하나의 라이너로 만들고 // 코드의 중간에있었습니다.
mflodin

의견을 제거하면 나에게도 문제가 해결되었습니다.
Alex

3

이 오류는 주로 빈 JSON을 구문 분석하려고 할 때 빈 리턴 된 ajax 호출로 인해 발생합니다.

반환 된 데이터가 비어있는 경우이 테스트를 해결하려면

$.ajax({
    url: url,
    type: "get",
    dataType: "json",
    success: function (response) {

        if(response.data.length == 0){
            // EMPTY
        }else{
            var obj =jQuery.parseJSON(response.data);
            console.log(obj);
        }
    }
});

3

내 경우에는, 그것은 누락으로 인한되었다 (0)에서 javascript:void(0)앵커있다.


0

JS에 추가하고있는 파일에 의견이 있었기 때문에이 문제가 발생했습니다. VM사전 진행 상황에 대한 어색한 이유가 있습니다. 사전 렌더링 된 파일을 클릭하면 오류가 발생합니다. 오류는 내 경우에는 내가 사용하고있는 일부 코드의 주석을 해제하는 것입니다.


0

또한 페이지의 마지막 스크립트 블록의 끝을 가리키는이 오류가 발생했습니다. 오류가 실제로 onclick="pagename"대신 대신 요소를 클릭하여 발생한 것임을 깨달았습니다 onclick="window.location='pagename'". 항상 빠진 대괄호는 아닙니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.