JS的布尔运算返回的不一定是布尔值
布尔运算有三种, 与或非.
在C中, 布尔运算一定会返回布尔值.
在JS中却不同, 只有"非"运算一定会返回布尔值, "与或"都不一定返回布尔值.
a && b 与运算:
a为false/NaN/undefined/null/0/""时, 则返回a;
a不为以上值,如true/Object/"0" 则返回b;
注意, "0"被认为是true, ""被认为是false.
a || b 或运算:
和&&相反, a不为false/NaN/undefined/null/0/""时, 则返回a;其他情况返回b;