有人可以解释这是做什么的吗?
var foo = foo || alert(foo);
Run Code Online (Sandbox Code Playgroud)
cas*_*nca 10
如果foo已定义并评估为true,则设置foo = foo,即它什么都不做.
如果foo被定义,但计算结果为假,它会弹出无论foo是(false,null,undefined,空字符串,0,NAN),但由于alert回报什么,foo将被设置为undefined.
如果foo尚未定义,则抛出异常.(编辑:在您的示例中,foo将始终因var foo声明而定义.)