此代码不会产生任何错误:
function func() {
xmlhttp.onreadystatechange = function stateChanged() {
if (xmlhttp.readyState == 4) {
/* stuff happens herer */
}
}
func2(xmlhttp)
}
如果将所有代码全部放在一行中,我将得到SyntaxError: unexpected token: identifier
function func() { xmlhttp.onreadystatechange = function stateChanged() { if (xmlhttp.readyState == 4) { /* stuff happens herer */ } } func2(xmlhttp) }
单行有什么区别?
答案 0 :(得分:1)
具有显式语句分隔符(即分号;
)对您的影响,而不是依赖于隐含的分隔符(即回车),将为您带来惊奇。试试这个:
function func() { xmlhttp.onreadystatechange = function stateChanged() { if (xmlhttp.readyState == 4) { /* stuff happens herer */ } }; func2(xmlhttp) }
问题在于,当您进行作业(xmlhttp.onreadystatechange =
时,如果没有作者明确的说明,解析器将无法确定作业应在何处结束。