删除导致令牌标识符错误的 Javascript 换行符
Removing Javascript line breaks causing token identifier error
这段代码没有产生任何错误:
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) }
单行有什么区别?
具有显式语句分隔符(即分号 ;
)而不是依赖于隐式分隔符(即回车符-return)的区别是多么惊人。试试这个:
function func() { xmlhttp.onreadystatechange = function stateChanged() { if (xmlhttp.readyState == 4) { /* stuff happens herer */ } }; func2(xmlhttp) }
问题是,当您进行赋值时 (xmlhttp.onreadystatechange =
),如果作者没有明确说明,解析器无法判断赋值应该在哪里结束。
这段代码没有产生任何错误:
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) }
单行有什么区别?
具有显式语句分隔符(即分号 ;
)而不是依赖于隐式分隔符(即回车符-return)的区别是多么惊人。试试这个:
function func() { xmlhttp.onreadystatechange = function stateChanged() { if (xmlhttp.readyState == 4) { /* stuff happens herer */ } }; func2(xmlhttp) }
问题是,当您进行赋值时 (xmlhttp.onreadystatechange =
),如果作者没有明确说明,解析器无法判断赋值应该在哪里结束。