本文介绍了SyntaxError:JS中的意外EOF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下脚本:
function getMoods(nb) {
var index;
var a = ["Banana", "Coconut", "Peach", "Apple", ...];
for (index=0; index<nb; ++index) {
alert('a');
if(index==1 || index==5 || index==9 || index==13) { moods += '<div class="col-xs-4">'; }
moods += '
<div class="checkbox">
<label for="'+a[index]+'">
<input type="checkbox" id="'+a[index]+'" class="moods"> '+a[index]+'
</label>
</div>';
if(index==4 || index==8 || index==12) { moods += '</div> '; }
}
$("#moods-area").html(moods);
}
我不明白为什么会出现以下错误:
I do not understand why I have the following error:
SyntaxError: Unexpected EOF
Could you please help me ?
推荐答案
有两个问题:
-
错误地使用:
["Banana", "Coconut", "Peach", "Apple", ...];
抛出语法错误:期望表达式,得到']'
,因为在扩展运算符之后没有任何可迭代对象。
This throws SyntaxError: expected expression, got ']'
, because after the spread operator there isn't any iterable object.
JavaScript不支持多行字符串。
JavaScript doesn't support multiline strings.
你可以使用一些替代方案:
You can use some alternatives:
-
连接多个字符串
Concatenate multiple strings
moods +=
'<div class="checkbox">'
+'<label for="'+a[index]+'">'
+'<input type="checkbox" id="'+a[index]+'" class="moods"> '+a[index]
+'</label>'
+'</div>';
使用 \
每一行的结尾在下一行继续字符串
Use \
at the end of each line to continue the string at the next one
moods += '\
<div class="checkbox">\
<label for="'+a[index]+'">\
<input type="checkbox" id="'+a[index]+'" class="moods"> '+a[index]+'\
</label>\
</div>';
加入一个字符串数组:
Join an array of strings:
moods += [
'<div class="checkbox">',
'<label for="'+a[index]+'">',
'<input type="checkbox" id="'+a[index]+'" class="moods"> '+a[index],
'</label>',
'</div>'].join('');
这篇关于SyntaxError:JS中的意外EOF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!