布尔类型
<script type="text/javascript">
// 布尔值的逻辑运算
// !非运算对一个值进行非运算
// 对一个布尔值进行取反操作
// 如果一个值进行两次取反他不会变化
// 如果对一个非布尔值进行运算 则会将其转化为布尔值 然后再取反
// 隐式类型转换:可以 利用该特点来将一个其他数据类型转换为布尔类型
// 原理和Boolean()函数一样
// 例:!!a;
var a = 123;
a = !!a;
console.log(a);
// && 与 运算对符号两边的数进行运算并返回结果
//全真才为真 有假即为假
// 但是第一值为true会检查第二个
// 第一个值为false不会检查第二个值
var result = true && true;
console.log("result= " + result);
var result1 = true && false;
console.log("result= " + result1);
var result2 = false && true;
console.log("result= " + result2);
var result3 = false && false;
console.log("result= " + result3);
// || 或 运算
// 只要有一个true就返回true全检测
var result0 = true || true;
console.log("result= " + result0);
var result11 = true || false;
console.log("result= " + result11);
var result22 = false || true;
console.log("result= " + result22);
var result33 = false || false;
console.log("result= " + result33);
</script>
非布尔类型
<script type="text/javascript">
// &&对于非布尔值进行与或运算
// 会先将其转换为布尔值进行运算并且返回原值
// true && true
var result1 = 5 && 6;//6 全为真返回第二个
console.log(result1);
//false && true
var result2 = 0 && 2;//0 有假就返回假
console.log(result2);
//true && false
var result3 = 2 && 0;//0 有假就返回假
console.log(result3);
//false && false
var result4 = 0 && NaN;//0 都为false返回第一个false
console.log(result4);
//false && false
var result5 = NaN && 0;//NaN 都为false返回第一个false
console.log(result5);
//||对于非布尔值进行或运算
//true||true
var result6 = 1 || 2;// 返回:1 第一个值为true则返回第一个值
console.log(result6);
//false||true
var result7 = 0 || 2;// 返回:2 第一个为false直接返回第二个值
console.log(result7);
//false||false
var result8 = "" || NaN; // 返回:NaN第一个为false直接返回第二个值
console.log(result8);
//false||false
var result9 = NaN || ""; // 返回:"" 第一个为false直接返回第二个值
console.log(result9);
</script>