最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中bool值的轉換及“&&”、“||”、 “!!”詳解

 更新時間:2017年12月21日 10:26:33   作者:hellobaby  
這篇文章主要給大家介紹了關于js中bool值的轉換方法以及"&&" 、"||"、 "!!"的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友下面來一起看看吧。

前言

首先需要知道的是,js中有6個值為false,分別是: 0, '', null, undefined, NaN 和 false, 其他(包括{}, [], Infinity)為true.

可以使用Boolean()函數(shù)或是兩次取非就能獲得對象的布爾值,例如Boolean(undefined)和!!undefined同樣能取得布爾值false,

對于0, '', null, undefined, NaN,{}, [], Infinity求布爾值,分別是false false false false false true true true.

因此我們知道的一點是:對象的布爾值是true,即使是對象{}。

bool值轉換

數(shù)據(jù)類型 bool值轉化
undefined undefined 轉化為 false
Object null 轉化為false,其他為 true
Boolean false 轉化為 false,true 轉化為 true
Number 0,NaN 轉化為false,其他為 true
String "" 轉化為 false,其他為 true

"&&"

javascript中“&&”運算符運算法則如下:

如果&&左側表達式的值為真值,則返回右側表達式的值;否則返回左側表達式的值。多個&&表達式一起運算時,返回第一個表達式運算為false的值,如果所有表達式運算結果都為true,則返回最右側一個表達式運算的值。

const aa = {'name': 'xx'};
const bb = aa && aa.age; // bb輸出為undefined;
let cc;
const dd = cc && cc.name ? cc.name : undefined; // dd輸出為undefined
const dd = cc && cc.name; // dd輸出為undefined;

上面兩句代碼的執(zhí)行結果是一樣的,之前寫代碼的時候一直用上面的方式,但是發(fā)現(xiàn)有些單測覆蓋不到,導致單測分支覆蓋率很低,換下面的方式就可以很好的解決這個問題,這兩句的效果是一樣的。

"||"

javascript中"||"運算符的運算法則如下:

如果"||"左側表達式的值為真值,則返回左側表達式的值;否則返回右側表達式的值。多個"||"表達式一起運算時,返回第一個表達式運算結果為true的值,如果所有表達式運算結果都為false,否則返回最右側的表達式的值。

const aa = false || 'xx'; // aa輸出為'xx' 

"!!"

"!!"將表達式進行強制轉化為bool值的運算,運算結果為true或者false。

const aa = 'xx';
const bb = !!aa; // bb輸出為true
const cc = !!(NaN || undefined || null || 0 || '' ); // cc為false;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

最新評論

滨海县| 张家川| 读书| 从江县| 金湖县| 正安县| 大名县| 伊金霍洛旗| 双桥区| 徐水县| 武强县| 介休市| 乌审旗| 佛学| 杂多县| 连云港市| 潍坊市| 海阳市| 沈阳市| 乾安县| 枣强县| 贵州省| 湖口县| 托克托县| 姚安县| 沾益县| 竹山县| 甘南县| 会理县| 莲花县| 沙河市| 垦利县| 榆林市| 渑池县| 奈曼旗| 莱阳市| 五指山市| 安吉县| 东兰县| 兰溪市| 内黄县|