for循环中的Javascript格式错误

Ins*_*ter 6 javascript debugging

我从一个例子中复制了这段代码.我已经读过100次了.

Array.prototype.map = function(fn) {
    var r = [];
    var l = this.length;
    for(var i = 0; i < l; i++) {
        r.push(fn(this[i]));
    }
    return r;
};
Run Code Online (Sandbox Code Playgroud)

为什么Firefox说:

not well-formed
file:///some/path.html                         Line: 5
    for(var i = 0; i < l; i++) {
    -------------------^
Run Code Online (Sandbox Code Playgroud)

UPDATE

只有在为页面打开Firebug时才会显示错误.

SLa*_*aks 9

您在HTML页面中使用Javascript代码声称完全符合XHTML标准.因此,该<字符不能出现在Javascript中,因为它将被解释为XHTML标记的开头.

有很多方法可以解决这个问题.

您可以更改DOCTYPE并使其不是XHTML.
您可以将Javascript包含在一个<![CDATA[部分中.
您可以将Javascript移动到单独的.js文件中.
你可以逃避每次<使用&lt和每次&使用&amp;.我不推荐这个选项; 它会使你的代码不可读,几乎肯定不会在IE中运行.