关于js语法的问题?

code图片描述/code

  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
不知怎么回事?

阅读 2.7k
2 个回答

优先级问题,改成:

c && (c = "2");

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

(c && c) = "2";

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题