两回事 a != 0 表示 a 不等 0,结果是一个变量,可能是真,也可能是假,取决于 a 究竟是否等于0,换一种表达方式为 a == true 而 a = !0 表示首先对零求反,然后再将值赋予变量a。对零求反结果就是真,这个结果可不再是变量了,相当于 a = true。 两个表达式一个用于测试 a 的内容,一个用于给a赋真值,意义差别大了去了