【问题标题】:Example code from Javascript textbook giving unexpected error来自 Javascript 教科书的示例代码给出了意外错误
【发布时间】:2013-11-28 01:38:17
【问题描述】:

前言 - 与问题无关 首先,我是 Javascript 的菜鸟,并且正在学习它。我已经阅读了很多 Eloquent Javascript,但最后发现它对于我的水平来说太高级了。我被推荐开始阅读 Nicholas Zakas 的 Professional Javascript for Web Developers。

问题 现在我正在尝试运行我在这里包含的 ObjectTypeExample04.htm:

function displayInfo(args) {
    var output = “”;
    if (typeof args.name == “string”){
        output += “Name: “ + args.name + “\n”;
    }
    if (typeof args.age == “number”) {
        output += “Age: “ + args.age + “\n”;
    }
    alert(output);
}

displayInfo({
    name: “Nicholas”,
    age: 29
});

displayInfo({
    name: “Greg”
});

据我所知,它只会打印在调用 displayInfo 中定义的对象,并通过在该函数中附加输出变量来完成此操作。

我不明白为什么会出现这个错误

异常:语法错误:非法字符

在 JavaScript 代码运行器中运行它时(不知道技术名称)。但基本上我尝试使用 JSFiddle 没有成功,我不明白出了什么问题,因为我从教科书中复制并粘贴了它。

【问题讨论】:

  • 可能是那些奇怪的引号...尝试将“更改为”
  • 非常感谢问题所在 - 应该把内容写出来而不是复制粘贴...

标签: javascript


【解决方案1】:

将“”符号替换为标准的“引号,然后再试一次。

【讨论】:

    【解决方案2】:

    您正在使用 LEFT DOUBLE QUOTATION MARK () 和 RIGHT DOUBLE QUOTATION MARK (),而您应该使用 QUOTATION MARK (")(或 APOSTROPHE ('))。

    这通常是由于使用文字处理器编写代码而导致的,该文字处理器会自动将直引号替换为印刷引号,而不是常规文本编辑器。

    【讨论】:

      【解决方案3】:

      用常规双引号替换“智能引号”:

      function displayInfo(args) {
        var output = "";
        if (typeof args.name == "string"){
          output += "Name: " + args.name + "\n";
        }
        if (typeof args.age == "number") {
          output += "Age: " + args.age + "\n";
        }
        alert(output);
      }
      displayInfo({
        name: "Nicholas",
        age: 29
      });
      displayInfo({
        name: "Greg"
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-26
        • 1970-01-01
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 2016-07-15
        相关资源
        最近更新 更多