欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文總結(jié)JS中邏輯運(yùn)算符的特點(diǎn)

 更新時(shí)間:2022年03月02日 09:28:38   作者:aaa111js  
在JavaScript的眾多運(yùn)算符里,提供了三個(gè)邏輯運(yùn)算符&&、||和!,下面這篇文章主要給大家介紹了關(guān)于JS中邏輯運(yùn)算符的特點(diǎn),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

Js中的邏輯運(yùn)算符

JavaScript中有三個(gè)邏輯運(yùn)算符,&&與、||或、!非,雖然他們被稱(chēng)為邏輯運(yùn)算符,但這些運(yùn)算符卻可以被應(yīng)用于任意類(lèi)型的值而不僅僅是布爾值,他們的結(jié)果也同樣可以是任意類(lèi)型。

描述

如果一個(gè)值可以被轉(zhuǎn)換為true,那么這個(gè)值就是所謂的truthy,如果可以被轉(zhuǎn)換為false,那么這個(gè)值就是所謂的falsy。會(huì)被轉(zhuǎn)換為false的表達(dá)式有: null、NaN、0、空字符串、undefined。

盡管&&和||運(yùn)算符能夠使用非布爾值的操作數(shù),但它們依然可以被看作是布爾操作符,因?yàn)樗鼈兊姆祷刂悼偸悄軌虮晦D(zhuǎn)換為布爾值,如果要顯式地將它們的返回值或者表達(dá)式轉(zhuǎn)換為布爾值,可以使用雙重非運(yùn)算符即!!或者Boolean構(gòu)造函數(shù)。

  • &&: AND,邏輯與,expr1 && expr2,若expr1可轉(zhuǎn)換為true則返回expr2,否則返回expr1。
  • ||: OR,邏輯或,expr1 || expr2,若expr1可轉(zhuǎn)換為true則返回expr1,否則返回expr2。
  • !: NOT,邏輯非,!expr,若expr可轉(zhuǎn)換為true則返回false,否則返回true。

JS邏輯運(yùn)算符的特點(diǎn)

首先說(shuō)一下,其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為布爾類(lèi)型的規(guī)則: null、undefined、0、NaN、空字符串轉(zhuǎn)換為false,其他轉(zhuǎn)化為 true。

1. 取反 !

首先把數(shù)據(jù)轉(zhuǎn)化為布爾值,然后取反,結(jié)果為 true 或 false。

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

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

2. 邏輯與 &&

JavaScript 中邏輯與和其他語(yǔ)言不太一樣,如果第一個(gè)操作數(shù)是 true(或者能夠轉(zhuǎn)為 true),計(jì)算結(jié)果就是第二個(gè)操作數(shù),如果第一個(gè)操作數(shù)是 false,結(jié)果就是 false(短路計(jì)算),對(duì)于一些特殊數(shù)值不遵循以上規(guī)則。(個(gè)人理解為:如果運(yùn)算的第一個(gè)操作數(shù)為true,則返回第二個(gè)操作數(shù),反之則返回第一個(gè)操作數(shù))

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

console.log(true && 10);            //第一個(gè)操作數(shù)是true,結(jié)果是第二個(gè)操作,也就是10
console.log(false && b);            //第一個(gè)操作數(shù)是false,結(jié)果flase
console.log(100 && false);          //第一個(gè)操作數(shù)是100,結(jié)果flase
console.log(undefined && false);    //第一個(gè)操作數(shù)是undefined,結(jié)果undefined
console.log(NaN && false);          //第一個(gè)操作數(shù)是NaN,結(jié)果NaN
console.log(null && false);         //第一個(gè)操作數(shù)是null,結(jié)果null
console.log('' && false);           //第一個(gè)操作數(shù)是空串,結(jié)果空串
console.log(0 && 100);              //結(jié)果是0
console.log(5 && 100);              //100
console.log(a && b);                //hello
console.log(obj && 200);            //200
</script>

3. 邏輯或 ||

如果第一個(gè)操作數(shù)不是 false,結(jié)果就是第一個(gè)操作數(shù),否則結(jié)果是第二個(gè)操作數(shù)。如果第一個(gè)操作數(shù)能夠轉(zhuǎn)為 true,結(jié)果就是第一個(gè)操作數(shù)(個(gè)人理解為:如果運(yùn)算的第一個(gè)操作數(shù)為 true,則返回第一個(gè)操作數(shù),反之則返回第二個(gè)操作數(shù))

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

console.log(true || 10);        //第一個(gè)操作數(shù)是true,結(jié)果是第一個(gè)操作,也就是true
console.log(false || b);        //第一個(gè)操作數(shù)是false,結(jié)果是第二個(gè)操作數(shù)b
console.log(100 || false);      //第一個(gè)操作數(shù)是100,結(jié)果100
console.log(undefined || 9);    //第一個(gè)操作數(shù)是undefined轉(zhuǎn)false,結(jié)果9
console.log(NaN || false);      //第一個(gè)操作數(shù)是NaN轉(zhuǎn)false,結(jié)果第二個(gè)操作數(shù)
console.log(null || a);         //第一個(gè)操作數(shù)是null轉(zhuǎn)false,結(jié)果a
console.log('' || false);       //第一個(gè)操作數(shù)是空串轉(zhuǎn)false,結(jié)果第二操作數(shù)
console.log(0 || 100);          //結(jié)果是100
console.log(5 || 100);          //5
console.log(a || b);            //a
console.log(obj || 200);        //obj
</script>

總結(jié) 

到此這篇關(guān)于JS中邏輯運(yùn)算符特點(diǎn)的文章就介紹到這了,更多相關(guān)JS邏輯運(yùn)算符特點(diǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js+css3實(shí)現(xiàn)炫酷時(shí)鐘

    js+css3實(shí)現(xiàn)炫酷時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了js+css3實(shí)現(xiàn)炫酷時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • javascript使用正則控制input輸入框允許輸入的值方法大全

    javascript使用正則控制input輸入框允許輸入的值方法大全

    在做項(xiàng)目的時(shí)候,我們經(jīng)常會(huì)遇到控制input輸入框允許輸入的值為數(shù)字,字母,漢字或者混排的情況,那么我們?cè)趺磥?lái)處理呢,下面我們就來(lái)探討怎么通過(guò)用javascript正則來(lái)實(shí)現(xiàn)
    2014-06-06
  • JS中原始值和引用值的儲(chǔ)存方式示例詳解

    JS中原始值和引用值的儲(chǔ)存方式示例詳解

    原始值指的是代表原始數(shù)據(jù)類(lèi)型的值,也叫基本數(shù)據(jù)類(lèi)型,引用值指的是復(fù)合數(shù)據(jù)類(lèi)型的值。接下來(lái)通過(guò)示例代碼給大家介紹JS中原始值和引用值的儲(chǔ)存方式,感興趣的朋友一起看看吧
    2018-03-03
  • JavaScript 密碼強(qiáng)度判斷代碼

    JavaScript 密碼強(qiáng)度判斷代碼

    JavaScript 密碼強(qiáng)度判斷代碼,其實(shí)就是利用了判斷一些特殊符號(hào),字符串長(zhǎng)度等來(lái)實(shí)現(xiàn)判斷。
    2009-09-09
  • JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)時(shí)器

    JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)時(shí)器

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • webpack2.0搭建前端項(xiàng)目的教程詳解

    webpack2.0搭建前端項(xiàng)目的教程詳解

    這篇文章主要給大家介紹了關(guān)于webpack2.0搭建前端項(xiàng)目的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用webpack2.0具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • 深入理解JavaScript系列(2) 揭秘命名函數(shù)表達(dá)式

    深入理解JavaScript系列(2) 揭秘命名函數(shù)表達(dá)式

    網(wǎng)上還沒(méi)用發(fā)現(xiàn)有人對(duì)命名函數(shù)表達(dá)式進(jìn)去重復(fù)深入的討論,正因?yàn)槿绱耍W(wǎng)上出現(xiàn)了各種各樣的誤解,本文將從原理和實(shí)踐兩個(gè)方面來(lái)探討JavaScript關(guān)于命名函數(shù)表達(dá)式的優(yōu)缺點(diǎn)
    2012-01-01
  • 基于JavaScript+HTML5 實(shí)現(xiàn)打地鼠小游戲邏輯流程圖文詳解(附完整代碼)

    基于JavaScript+HTML5 實(shí)現(xiàn)打地鼠小游戲邏輯流程圖文詳解(附完整代碼)

    打地鼠小游戲大家都喜歡玩,本文是以html編寫(xiě)的,并且使用HBulider軟件進(jìn)行編寫(xiě)的,下面通過(guò)本文給大家分享基于JavaScript+HTML5 實(shí)現(xiàn)打地鼠小游戲邏輯流程圖文詳解,需要的朋友參考下吧
    2017-11-11
  • javascript原型鏈繼承用法實(shí)例分析

    javascript原型鏈繼承用法實(shí)例分析

    這篇文章主要介紹了javascript原型鏈繼承用法,實(shí)例分析了javascript原型鏈繼承中的技巧與相關(guān)注意事項(xiàng),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 詳解webpack4.x之搭建前端開(kāi)發(fā)環(huán)境

    詳解webpack4.x之搭建前端開(kāi)發(fā)環(huán)境

    這篇文章主要介紹了詳解webpack4.x之搭建前端開(kāi)發(fā)環(huán)境,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03

最新評(píng)論