如何修复 Javascript 中缺少分号的语法错误?

问题描述 投票:0回答:8

一位朋友为我编写了一些代码,其中有一个文件存在奇怪的语法错误。经过一番搜索后,我将范围缩小到这部分代码,它应该会重现错误:

var say = functіon(message) {
  alert(message);
  return message;
};

say(say("Goodbye!"));

当我运行此程序时,我在 Internet Explorer 控制台中看到一个错误,显示

SCRIPT1004: Expected ';'
。我没有看到任何地方缺少分号,而且我无法想象它要我在哪里放置分号。

哪里需要分号?为什么在那里需要分号?

javascript unicode syntax-error
8个回答
135
投票

您的问题是

i
中的
functіon
是Unicode字符U+0456
CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
。如果您将其更改为“正常”
i
,它应该可以正常工作。

但现在我想知道如何破解:)你在那里得到了西里尔字符:P

Screenshot of EditPlus showing the 'i' highlighted, with the status bar showing its codepoint, 0456


18
投票

你拼错了“函数”:)

var say = function(message){
    alert(message);
    return message;
};

say(say("Goodbye!"));

您已插入

functіon
:)


11
投票

我已将其复制并粘贴到我的记事本++中,您的代码如下所示。重新输入您的

function
关键字,i 被替换为 ?.

var say = funct?on(message) {
  alert(message);
  return message;
};
say(say("Goodbye!"));

8
投票

我将你的代码复制到jsfiddle中,Chrome也给出了错误。 我删除了“function”一词,然后重新输入了“function”,效果很好。

那里一定有一些额外的字符。


4
投票

通过此页面验证:https://r12a.github.io/uniview/?charlist=funct%D1%96on(message)

显示每个角色的信息。

enter image description here


4
投票

事实上,您插入了西里尔字母“i”而不是普通的“i”。 我在 VSCode 中遇到了其他错误:

  • ',' expected. (1, 29)
  • ',' expected. (2, 10)
  • Declaration or statement expected. (4, 3)

您也可以尝试评估

"functіon" === "function"

console.log("functіon" === "function")

但是,当我尝试自己画“函数”来比较它时,它返回true:

console.log("function" === "function")

另外,我在这里没有包含分号;在 javascript 中它们不是必需的。


2
投票

我在调试别人的工作时遇到了类似的问题和相同的错误代码。为了解决这个问题,我将代码部分粘贴到记事本中,然后将其重新复制回 Visual Studio。 错误消失了。 我认为最初编写该代码的人一定是从其中包含一些奇怪字符的地方复制的。


0
投票

英寸至厘米 = 2.54

CM_TO_METERS = 0.01

英尺到英寸 = 12

函数开始(){

def 将高度转换为米(英尺,英寸):

英尺米 = 英尺 FEET_TO_INCHES INCHES_TO_CM * CM_TO_METERS

英寸英寸_米 = 英寸 INCHES_TO_CM CM_TO_METERS

米 = 英尺米 + 英寸米

print(str(英尺) + "英尺, " + str(英寸) +" 英寸 = " + str(米) + "米" )

将高度转换为米(6, 4)

将高度转换为米(5, 8)

将高度转换为米(5, 2) }

© www.soinside.com 2019 - 2024. All rights reserved.