1. Boolean 运算符
注意,逻辑 NOT 运算返回的一定是 Boolean 类型的值,而逻辑 OR 和 逻辑 AND 运算则不一定。
逻辑 NOT 运算行为如下所示:
如果运算数是对象,返回 false;
如果运算数是数字 0,返回 true;
如果运算数是数字 0 以外的任何数字,返回 false;
如果运算数是 null,返回 true;
如果运算数是 NaN,返回 true;
如果运算数是 undefined,返回 true(JavaScript 高级程序设计中说发生错误?)。
逻辑 AND 运算的运算数可以是任何类型,不止是 Boolean 值。如果某个运算数不是原始的 Boolean 值,那么 AND 运算不一定返回 Boolean 值。其运算行为如下:
如果一个运算数是对象,另一个是 Boolean 值,返回该对象;
如果两个运算数是对象,返回第二个对象;
如果某个运算数是 null,返回 null;
如果某个运算数是 NaN,返回 NaN;
如果某个运算数是 undefined,返回 undefined(JavaScript 高级程序设计中说发生错误?);
与逻辑 AND 运算相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算不一定返回 Boolean 值,此时其运算行为如下:
如果一个运算数是对象,另一个是 Boolean 值,返回该对象;
如果两个运算数是对象,返回第一个对象;
如果某个运算数是 null,返回 null;
如果某个运算数是 NaN,返回 NaN;
如果某个运算数是 undefined,返回另外一个数(JavaScript 高级程序设计中说发生错误?);
注意,逻辑 NOT 运算返回的一定是 Boolean 类型的值,而逻辑 OR 和 逻辑 AND 运算则不一定。
逻辑 NOT 运算行为如下所示:
如果运算数是对象,返回 false;
如果运算数是数字 0,返回 true;
如果运算数是数字 0 以外的任何数字,返回 false;
如果运算数是 null,返回 true;
如果运算数是 NaN,返回 true;
如果运算数是 undefined,返回 true(JavaScript 高级程序设计中说发生错误?)。
逻辑 AND 运算的运算数可以是任何类型,不止是 Boolean 值。如果某个运算数不是原始的 Boolean 值,那么 AND 运算不一定返回 Boolean 值。其运算行为如下:
如果一个运算数是对象,另一个是 Boolean 值,返回该对象;
如果两个运算数是对象,返回第二个对象;
如果某个运算数是 null,返回 null;
如果某个运算数是 NaN,返回 NaN;
如果某个运算数是 undefined,返回 undefined(JavaScript 高级程序设计中说发生错误?);
与逻辑 AND 运算相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算不一定返回 Boolean 值,此时其运算行为如下:
如果一个运算数是对象,另一个是 Boolean 值,返回该对象;
如果两个运算数是对象,返回第一个对象;
如果某个运算数是 null,返回 null;
如果某个运算数是 NaN,返回 NaN;
如果某个运算数是 undefined,返回另外一个数(JavaScript 高级程序设计中说发生错误?);