【问题标题】:unexpected token error for catch javascriptcatch javascript 的意外令牌错误
【发布时间】:2015-08-18 19:54:25
【问题描述】:

我正在努力寻找这段代码中的错误。查了很多次,谁能指出问题出在哪里?

$(function() {
  try {
    function endswith(str, ends) {
      if (ends === '') return true;
      if (str == null || ends == null) return false;
      str = String(str);
      ends = String(ends);
      return str.length >= ends.length && str.slice(str.length - ends.length) === ends;
    }
    var referrer = new URL(document.referrer).domain;
    if (endswith(referrer, "xyz.com")) {
      $(".logo .logo-external").remove();
    } else {
      $(".logo .logo-internal").remove();
    }
  } catch () {}
});

【问题讨论】:

标签: javascript try-catch


【解决方案1】:

catch (e) {}你错过了变量e

$(function() {
  try {
    function endswith(str, ends) {
      if (ends === '') return true;
      if (str == null || ends == null) return false;
      str = String(str);
      ends = String(ends);
      return str.length >= ends.length && str.slice(str.length - ends.length) === ends;
    }
    var referrer = new URL(document.referrer).domain;
    if (endswith(referrer, "xyz.com")) {
      $(".logo .logo-external").remove();
    } else {
      $(".logo .logo-internal").remove();
    }
  } catch (e) {}
});

【讨论】:

    【解决方案2】:

    根据MDNtry...catch 语法定义如下:

    try {
       try_statements
    }
    ...
    [catch (exception_var) {
       catch_statements
    }]
    [finally {
       finally_statements
    }]
    

    这意味着exception_var 不是可选的。否则,它看起来像这样:

    ...
    [catch ([exception_var]) {     // Uncaught SyntaxError: Unexpected token )
       catch_statements
    }]
    ...
    

    【讨论】:

      猜你喜欢
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      相关资源
      最近更新 更多