JavaScript中逻辑运算符

1、JavaScript“逻辑”运算符

不少学习 JavaScript的人,容易被 JavaScript 的逻辑运算符的运算规则搞晕。为何呢?由于
JavaScript的逻辑运算符和其余语言(好比:java、c#、c等)有着很大的不一样。其余那些强类型的语言的
逻辑运算符参数运算的都是true或false,结果也必定是true或false,很容器理解和记住。而JavaScript
的"逻辑运算符"参与运算的能够是任意类型,结果也多是任意类型,规则及其复杂。因此,JavaScript中,
他们已经不是真正的"逻辑运算符"了,因此我才给他们打上引号。

2、JavaScript中的逻辑运算符

首先说一下,其余数据类型转换为布尔类型的规则: 
null、undefined、0、NaN、空字符串转换为false,其余转化为true。 
javascript中有三种逻辑运算符:javascript

1. 取反 ! 
首先把数据转化为布尔值,而后取反,结果为true或falsejava

<script type="text/javascript">
var a = [1,2,3];
var b = "hello";
var obj = new Object();
var d;

console.log(!"");
console.log(!d);
console.log(!a);
console.log(!b);
console.log(!obj);
</script>

 

结果: 
这里写图片描述 
2. 逻辑与 && 
js中逻辑与和其余语言不太同样,若是第一个操做数是true(或者可以转为true),计算结果就是第二个操做数,若是第一个操做数是false,结果就是false(短路计算),对于一些特殊数值不遵循以上规则.c#

<script type="text/javascript">
var a = [1,2,3];
var b = "hello";
var obj = new Object();
var d;

console.log(true && 10);//第一个操做数是true,结果是第二个操做,也就是10
console.log(false && b);//第一个操做数是false,结果flase
console.log(100 && false);//第一个操做数是100,结果flase
console.log(undefined && false);//第一个操做数是undefined,结果undefined
console.log(NaN && false);//第一个操做数是NaN,结果NaN
console.log(null && false);//第一个操做数是null,结果null
console.log('' && false);//第一个操做数是空串,结果空串
console.log(0 && 100);//结果是0
console.log(5 && 100);//100
console.log(a && b);//hello
console.log(obj && 200);//200
</script>

3. 逻辑或 ||学习

若是第一个操做数不是false,结果就是第一个操做数,不然结果是第二个操做数。若是第一个操做数可以转为true,结果就是第一个操做数spa

<script type="text/javascript">
var a = [1,2,3];
var b = "hello";
var obj = new Object();
var d;

console.log(true || 10);//第一个操做数是true,结果是第一个操做,也就是true
console.log(false || b);//第一个操做数是false,结果是第二个操做数b
console.log(100 || false);//第一个操做数是100,结果100
console.log(undefined || 9);//第一个操做数是undefined转false,结果9
console.log(NaN || false);//第一个操做数是NaN转false,结果第二个操做数
console.log(null || a);//第一个操做数是null转false,结果a
console.log('' || false);//第一个操做数是空串转false,结果第二操做数
console.log(0 || 100);//结果是100
console.log(5 || 100);//5
console.log(a || b);//a
console.log(obj || 200);//obj
</script>
相关文章
相关标签/搜索