JavaScript-条件抛出未捕获的语法错误
我目前正在进行一项挑战,将输入以下函数的任意数量的数字转换为货币(用字符串表示,其中每三个字符用逗号分隔)。一切正常,直到我意识到如果输入的数字长度是4,那么逗号应该放在1234而不是123,4。 当我在for循环中包装初始if语句时,函数似乎有点失控了。(1) 我总是在控制台中被抛出一个“未捕获的SyntaxError:意外的标记else”。(2) 我想这可能是因为尝试在for/if/else周围放置if/else。如果能说明我的错误,我们将不胜感激。查理JavaScript-条件抛出未捕获的语法错误,javascript,syntax-error,conditional-statements,Javascript,Syntax Error,Conditional Statements,我目前正在进行一项挑战,将输入以下函数的任意数量的数字转换为货币(用字符串表示,其中每三个字符用逗号分隔)。一切正常,直到我意识到如果输入的数字长度是4,那么逗号应该放在1234而不是123,4。 当我在for循环中包装初始if语句时,函数似乎有点失控了。(1) 我总是在控制台中被抛出一个“未捕获的SyntaxError:意外的标记else”。(2) 我想这可能是因为尝试在for/if/else周围放置if/else。如果能说明我的错误,我们将不胜感激。查理 function toCurrenc
function toCurrency(price){
var newStrng = price.toString().split("");
var stringCh = [];
if(newStrng.length===4){
console.log("gotcha");
stringCh = newStrng.splice(1,0,",");
return stringCh;
} else {
for(var i = 0; i < newStrng.length; i++) {
if(i %3 === 0 && i !== 0){
stringCh.push(",");
stringCh.push(newStrng[i]);
}
} else {
stringCh.push(newStrng[i]);
}
}
var finallyDone = stringCh.join("");
return finallyDone;
}//EO function
函数到货币(价格){
var newStrng=price.toString().split(“”);
var stringCh=[];
如果(newStrng.length==4){
console.log(“gotcha”);
stringCh=新的拼接(1,0,“,”);
返回字符串;
}否则{
对于(变量i=0;i
下一块中的if
语句
for(var i = 0; i < newStrng.length; i++) {
if(i %3 === 0 && i !== 0){
stringCh.push(",");
stringCh.push(newStrng[i]);
}
} else {
stringCh.push(newStrng[i]);
}
}
for(变量i=0;i
有一个额外的}
,就在else
之前。取出它,您将不会再收到语法错误
通过确保代码正确缩进,以便可以看到哪些括号与哪些块相关联,将来可以更容易地发现类似的错误。虽然我知道它可以在源代码中合理缩进,并且可能没有复制到如此完美的位置。for循环的
中有一个}
错误的位置,需要在else
块之后移动。实际上,if
语句位于for
循环中,而else
块位于循环之外,这是无效的语法
function toCurrency(price){
var newStrng = price.toString().split("");
var stringCh = [];
if(newStrng.length===4){
console.log("gotcha");
stringCh = newStrng.splice(1,0,",");
return stringCh;
} else {
for(var i = 0; i < newStrng.length; i++) {
if(i %3 === 0 && i !== 0){
stringCh.push(",");
stringCh.push(newStrng[i]);
} else {
stringCh.push(newStrng[i]);
}
}
}
var finallyDone = stringCh.join("");
return finallyDone;
}//EO function
函数到货币(价格){
var newStrng=price.toString().split(“”);
var stringCh=[];
如果(newStrng.length==4){
console.log(“gotcha”);
stringCh=新的拼接(1,0,“,”);
返回字符串;
}否则{
对于(变量i=0;i
删除}之后
stringCh.push(newStrng[i]);
嗯,js:-)中没有{}的,否则{}
语句总是正确地缩进代码。