var T,
    baidu = T = baidu || {version: "1.3.4"}; 看了一段代码,不大清楚逻辑运算符||与对象{version: "1.3.4"}运算后结果是什么?有什么具体的含义么?看不懂小弟我新手,刚接触JS,请高手帮忙解答,谢了!

解决方案 »

  1.   

    {version: "1.3.4"} 相当于 true 的意思
    false 和 undefined 相当于 false 的意思
      

  2.   

    看下运算符优先级,先是计算 T = baidu || {version: "1.3.4"};  baidu是null的话,T就是那个对象了,否则T就等于baidu的值然后baidu=T,baidu和T同值
      

  3.   


    代码通过var申明了T和baidu两个变量,一开始不都是null么?baidu || {version: "1.3.4"}运算结果不是Boolean值么?T和baidu两个变量感觉最后都是true,因为{version: "1.3.4"}这个对象不是null,我这样理解有错么? 
      

  4.   


    回答:
    1.js中支持重复声明,这是js特有的.
    例如:var a = 1;
    var a = 2; //  相当于 a=2;
    var a = 3;这样完全合法的.
    var T,baidu = T = baidu || {version: "1.3.4"};  
    这句话意思是baidu之前可能就已经被赋值了.2.这点是所有语言都一样的,问这个问题说明不光是js新手的问题了
    上面这个不就是一个if语句的缩写啊
      

  5.   

    ||运算有一个是true即为true
    如果baidu为true的话直接将百度赋给T
      

  6.   

    一般这种写法都是因为,这句代码有可能会被执行多次。
    初次执行是,给baidu赋值{version: "1.3.4"}。
    再次执行时,值不变。