1. 程式人生 > >JavaScript中邏輯運算符

JavaScript中邏輯運算符

view bject 及其 content div 不同 三種 都是 ||

一、JavaScript“邏輯”運算符

很多學習 JavaScript的人,容易被 JavaScript 的邏輯運算符的運算規則搞暈。為什麽呢?因為
JavaScript的邏輯運算符和其他語言(比如:java、c#、c等)有著很大的不同。其他那些強類型的語言的
邏輯運算符參數運算的都是 true或false,結果也一定是true或false,很容器理解和記住。而JavaScript
的"邏輯運算符"參與運算的可以是任意類型,結果也可能是任意類型,規則及其復雜。所以,JavaScript中,
他們已經不是真正的"邏輯運算符"了,所以我才給他們打上引號。

二、JavaScript中的邏輯運算符

首先說一下,其他數據類型轉換為布爾類型的規則:
null、undefined、0、NaN、空字符串轉換為false,其他轉化為true。
javascript中有三種邏輯運算符:

1. 取反 !
首先把數據轉化為布爾值,然後取反,結果為true或false

<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(短路計算),對於一些特殊數值不遵循以上規則.

<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,結果就是第一個操作數

<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>

更多信息,請關註千鋒php教學日記,用良心做教育,做真實的自己

JavaScript中邏輯運算符