因此,这是进行安全的登录。 我通过chrome的javascript控制台运行此命令,并收到“ Uncaught ReferenceError:分配中的无效左侧”?! 请帮忙!

function logIn() {
String.prototype.hashCode = function() {
        for(var ret = 0, i = 0, len = this.length; i < len; i++) {
        ret = (31 * ret + this.charCodeAt(i)) << 0;
    }
        return ret;
    };

var user = document.getElementById("username"),
    pass = document.getElementById("password");
if ((user = "Fedora") && (pass.hashCode() = -976887139)) {
    window.alert("Captain Fedora: SuperUser");

}
}   

===============>>#1 票数:3 已采纳

if ((user = "Fedora") && (pass.hashCode() = -976887139))

应该

if ((user == "Fedora") && (pass.hashCode() == -976887139))

所以你做比较,而不是分配

===============>>#2 票数:0

是的, pass.hashCode() = -976887139是一个赋值 而且由于函数调用未返回引用 ,因此将其分配给它是无效的。 您可能想要比较

pass.hashCode() == -976887139

另外,您将想要获取那些DOM元素的value s (我不敢相信密码输入完全具有hashCode方法),并且您还想将user变量的内容与该字符串进行比较,而不是分配它们。

var user = document.getElementById("username").value,
    pass = document.getElementById("password").value;
if (user == "Fedora" && pass.hashCode() == -976887139) {
    window.alert("Captain Fedora: SuperUser");
}

===============>>#3 票数:0

if ((user = "Fedora") && (pass.hashCode() = -976887139))

改成

if ((user == "Fedora") && (pass.hashCode() == -976887139))

“ reuturn ret”也可能返回未定义,因为范围错误。 var ret = 0仅在“ for”范围内起作用

  ask by user146881 translate from so

未解决问题?本站智能推荐: