这种写法是什么意思?
javascript吧
全部回复
仅看楼主
level 9
gameloftyou
楼主
var THREE = THREE || {};
难道是THREE没定义过时这句执行后THREE == {},如果定义过了保持不变?
2013年10月05日 14点10分
1
level 10
荧光小草
可以测试一下……没见过
2013年10月05日 14点10分
2
gameloftyou
哇,真的可以测试
2013年10月05日 14点10分
level 7
水墨悼影
看到8级大神9级大神不敢吱声憋了半天...
这不就是 || 运算符么?
从左开始运算,如果左边的结果false再执行||的右边....
如果true...右边?能吃么?
2013年10月05日 14点10分
3
gameloftyou
我不会告诉你我8级基本都是靠签到来的
2013年10月05日 14点10分
gameloftyou
然后最近几天才开始学js。你说的很有道理,不过测试前我还以为最终THREE会不会是个布尔类型
2013年10月05日 14点10分
荧光小草
我只是路过打酱油的根本停不下来
2013年10月05日 14点10分
level 11
wentbc
假如THREE没有被定义,那么var THREE={} 的意思就是将他定义为一个空对象为后续做准备吧。。
2013年10月05日 16点10分
4
level 9
洛华伊水晶
和var three=three?three:{}一个意思。
解析器,是这样解析的,||或运算,是运算符两侧变量有一个为真,结果就为真。Js解析器首先判断three是否为真,如果three为真就不判断||后面的变量,直接返回three的结果。
2013年10月05日 22点10分
5
gameloftyou
嗯, 这个我知道c/c++的话返回的是布尔值
2013年10月06日 00点10分
洛华伊水晶
回复 gameloftyou :对,c/c++,反正0或1(true|false)。js返回表达计算的结果,原值返回。
2013年10月06日 02点10分
a1272146
正解
2013年10月06日 15点10分
level 10
aaaasd☎
有点像命名空间
2013年10月06日 01点10分
6
level 9
江南爱麦
如果three存在则覆盖,如果不存在,则另它为空
你去理解一下 ||的概念
2013年10月06日 14点10分
7
1