首页 > 关于js语法的问题?

关于js语法的问题?

  var c = null;
        var a = $("#h1").on("click",function(event){
            alert(this.innerText);
            c && c = "2";

            alert(c);
        })

        alert(c);

在网上看到一种js的写法,感觉像是if的简写方式,自己试了试,
报错Uncaught ReferenceError: Invalid left-hand side in assignment
不知怎么回事?


确实是简写,很常用的,记得以前看一个特效的压缩源码看到的这种写法,然后就一直在用
其实等价于:
undefined应该是对的

if(eleMenuOn != undefined){
    eleMenuOn.removeClass('cho_link_on');
}

看你代码eleMenuOn这个变量应该是一个dom,左值无效,右侧加括号就ok


优先级问题,改成:

c && (c = "2");

如果不加括号,则会变成:

(c && c) = "2";

左边的c && c是一个JavaScript的值,不能作为左操作数,所以报错。

【热门文章】
【热门文章】