关键要看a在这个地方是什么类型.
可以把它当作一个布尔型,那意思就是如果a为假,赋值为x.
如果它是一个整型的,意思就是如果a为0,赋值为x.
if(!a)a=window.event;这句话里面是要把它当作对象来使用了,
假若对象a为空,赋值为window.event这个事件
js中的变量类型不是强类型,可以理解成a是布尔值,如果a为假,就把x值赋给a,当然,x可以为任何类型的变量
建议楼主好好看看js标准
如果a=0,则把x赋值给a
!a是这样的意思:如果a为真则!a为假,a为假则!a为真。对于数字,所有非零值都为真,零为假
如果a等于0,就把x赋值给a
如果x不是a就把X赋值给a