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

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>

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



답변

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

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

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

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


답변

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

JSON.parse(stringifiedJSON);

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

JSON.parse("");


답변

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

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

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


답변

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

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


답변

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


답변

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


답변

이 오류는 주로 빈 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);
        }
    }
});