這篇文章主要為大家介紹了關於js中bool值的轉換方法以及"&&" 、"||"、 "!!"的相關資料,文中透過範例程式碼介紹的非常詳細,對大家的學習或者工作有一定的參考學習價值,需要的朋友下面來一起看看吧。
前言
首先要知道的是,js中有6個值為false,分別是: 0, '', null, undefined, NaN 和false, 其他(包括{}, [], Infinity)為true.
可以使用Boolean()函數或是兩次取非就能獲得物件的布林值,例如Boolean(undefined )和!!undefined同樣能取得布林值false,
對於0, '', null, undefined, NaN,{}, [], Infinity求布林值,分別是false false false false false true true true.
因此我們知道的一點是:物件的布林值是true,即使是物件{}。
bool值轉換
#資料類型 | ##bool值轉換|
---|---|
undefined 轉換為false | |
null 轉換為false,其他為true | |
false 轉換為false,true 轉換為true | |
# 0,NaN 轉換為false,其他為true | |
"" 轉換為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;
上面兩句程式碼的執行結果是一樣的,之前寫程式碼的時候一直用上面的方式,但是發現有些單測覆蓋不到,導致單測分支覆蓋率很低,換下面的方式就可以很好的解決這個問題,這兩句的效果是一樣的。
"||"
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;
上面是我整理給大家的,希望今後會對大家有幫助。
相關文章:
在Vuejs中透過nextTick()實作非同步更新佇列在three.js中如何實作3D模型展示Angular CLI安裝教學使用ReactNative如何實作Toast使用CommonsChunkPlugin如何做才能抽取公共模組在AngularJS中有關於MVC的複雜操作以上是在js中如何轉換bool值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!