意外标记(用于javascript)

意外标记(用于javascript),javascript,for-loop,token,Javascript,For Loop,Token,我想在javascript中写一个算法,我确信我写的是真的。该算法给出了用户的一个数字,并给出了结果:1+3+5+…+(2n+1),而“n”是var。 javascript给了我错误:未定义calc(),意外标记 <html> <head> <title>Algorithm</title> <script type="text/javascript"> function calc(){

我想在javascript中写一个算法,我确信我写的是真的。该算法给出了用户的一个数字,并给出了结果:1+3+5+…+(2n+1),而“n”是var。 javascript给了我错误:未定义calc(),意外标记

<html>
<head>
    <title>Algorithm</title>
    <script type="text/javascript">
        function calc(){
            var n = document.getElementById('value').value;
            var sum = 0, i = 1, k = 0;
            for(k=0,k<n,k++){
            sum = sum += i;
            i+=2;
            k++;
            }
            document.getElementById('answer').innerHTML = sum;
        }
    </script>
</head>
<body>
    <input type="text" id="value" placeholder="Enter your number"/>
    <button onclick="calc()">OK</button><br/>
    <h1 id="answer"></h1>
</body>

算法
函数计算(){
var n=document.getElementById('value').value;
var总和=0,i=1,k=0;
for(k=0,kfor()语句需要分号(
)而不是逗号(

(var k=0;k

“jshint”工具在捕获javascript中的错误方面非常有帮助。它的web版本在

for(k=0,k上。问题是你的
for
循环语法。你需要使用分号
来分隔语句:

for( k = 0; k < n; k++ ){
 ...
}
(k=0;k{ ... }
摘自:

创建一个循环,该循环由三个可选表达式组成,用括号括起来,并用分号分隔,后跟在循环中执行的语句



JavaScript引擎无法解析for循环,然后它遇到了循环的右括号(它没有预料到,因为它仍在尝试解析循环的条件)。

这是因为您应该在
for
语法中使用
而不是

for(k=0;k<n;k++){...}

for(k=0;k您的
for
语句使用的是
逗号,而不是
分号。
将其更改为使用

for(k=0,k<n,k++){
    sum = sum += i;
    i+=2;
    k++;
}

for(k=0,k)此行
sum=sum+=i;
for
循环头的
中看起来很可疑,您应该使用
而不是
for(k=0;k)可能重复
for(k=0,k<n,k++){
    sum = sum += i;
    i+=2;
    k++;
}