JavaScript 错误(未捕获的 SyntaxError:输入意外结束)

JavaScript error (Uncaught SyntaxError: Unexpected end of input)

提问人: 提问时间:10/21/2010 最后编辑:Phillip 更新时间:10/13/2020 访问量:959727

问:

我有一些 JavaScript 代码可以在 FireFox 中使用,但在 Chrome 或 IE 中不起作用。

在Chrome JS控制台中,我收到以下错误:

“未捕获的语法错误:输入意外结束”。

我使用的 JavaScript 代码是:

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

它说错误在最后一行,即});

javascript jquery 语法错误 缩进

评论

3赞 Eric D. Johnson 10/21/2014
我知道 Chrome 的 V8,如果响应是 200 而不是 204,我也会收到此错误。只要抬起头来,以防有人也得到这个。DELETEsuccesssuccess - no response

答:

471赞 SLaks 10/21/2010 #1

添加第二个 .});

正确缩进后,代码将读取

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

你从来没有关闭过外面.$(function() {

评论

319赞 SLaks 10/21/2010
教训是,始终缩进代码(并正确缩进)。
7赞 Sławomir Lenart 9/20/2014
教训是,始终使用带有良好插件的好编辑器,它可以检测括号配对、突出显示它甚至修复问题。
2赞 Nathan Long 1/9/2015
@HeyWatchThis 您可以尝试 Syntastic for Vim。
2赞 trusktr 5/30/2015
我使用 neomake 进行 vim/neovim,配置为每次保存 JavaScript 文件时都运行 jshint。如果我有语法错误,我会在 vim 的 vim/neovim 的装订线中看到警告/错误符号。当我将光标放在那一行上时,vim/neovim 命令行将显示一条消息,说明错误是什么。
0赞 taiji123 7/14/2018
想知道它怎么可能“在Firefox中工作”... :-/
16赞 hvgotcodes 10/21/2010 #2

稍微格式化你的代码,你只关闭了内部的悬停函数。您尚未关闭外部部件,如下所示:

$(// missing closing)
 function() { // missing closing }
     $("#mewlyDiagnosed").hover(
        function() {
            $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
        }, 
        function() {
            $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
        });
7赞 Yëco 9/21/2012 #3

就我而言,它最终成为我书签中的一个简单的双引号问题,请记住在书签上只使用单引号。以防万一这对某人有帮助。

评论

1赞 Ankit Sharma 7/26/2022
非常感谢,我完全不明白为什么我的书签不起作用。现在它似乎起作用了!任何具体原因,为什么书签中不接受双引号?
40赞 Hugo 6/30/2013 #4

http://jsbeautifier.org/ 有助于缩进缩小的 JS 代码。

此外,使用 Google Chrome,您可以使用“漂亮的打印”。请参阅下面的示例屏幕截图,该屏幕截图显示 Stack Overflow 直接从我的浏览器中很好地缩进:)jquery.min.js

enter image description here

99赞 falsarella 5/30/2014 #5

就我而言,我试图解析一个空的 JSON:

JSON.parse(stringifiedJSON);

换句话说,发生的事情如下:

JSON.parse("");

评论

4赞 Nasser Al-Wohaibi 3/31/2015
不幸的是,这包括 jquery 1.11.2$.parseJSON
3赞 user280109 10/28/2014 #6

当我尝试编写 javascript 书签时,我遇到了这个错误。我无法弄清楚是什么原因造成的。但最终我尝试通过以下网站对书签进行 URL 编码: http://mrcoles.com/bookmarklet/ 然后错误消失了,所以一定是 javascript 代码中的某些字符被解释为特殊 URL 控制字符的问题。

评论

2赞 mflodin 6/9/2015
我在我的 js 中有一个 // 注释,它注释出来的比我想要的要多一些,因为将其粘贴到书签的 url 中使整个代码成为单行代码,而 // 位于代码的中间。
0赞 Alex 9/10/2018
删除评论也为我修复了它。
6赞 Jimmy Obonyo Abor 12/31/2015 #7

此错误主要是由于在尝试解析空 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);
        }
    }
});
1赞 Jack Hales 2/20/2017 #8

我得到了这个,因为我在添加到我的 JS 的文件中有一条评论,这是正在发生的事情的真正尴尬的原因 - 尽管当单击预渲染的文件并捕获错误时,您会发现错误到底是什么,就我而言,它只是取消注释我正在使用的一些代码。VM

评论

1赞 Saghachi 10/7/2020
我遇到了同样的问题,有时 ftp 传输会弄乱文件的行,并且单行注释可能会在其行中包含后行
12赞 Sam 3/5/2018 #9

就我而言,这是由锚点中的缺失引起的。(0)javascript:void(0)

评论

2赞 user1211530 7/16/2020
同样的问题:但是,我错过了一个javascript:void(0)
1赞 justanotherguy 7/9/2019 #10

我还收到此错误,指向页面上最后一个脚本块的末尾,只是意识到错误实际上是由于单击了带有 而不是 .这并不总是一个缺失的括号!onclick="pagename"onclick="window.location='pagename'"

1赞 Petr 10/13/2020 #11

我认为这几乎是您应用程序中的任何 javascript 错误/键入错误。 我试图删除一个又一个的文件内容,最后发现了打字错误。

评论

0赞 user1210923 1/21/2022
我在第二次和后续调用时收到此错误。第一次调用工作正常,但此后我收到错误,它指向 html 的第一行。无益。我写了一个程序来检查所有 brces、括号和引号,并且都是平衡的。代码可能相当复杂 - 而且有很多。还有其他想法吗?