首頁  >  文章  >  web前端  >  在js中如何轉換bool值?

在js中如何轉換bool值?

亚连
亚连原創
2018-06-19 14:04:253773瀏覽

這篇文章主要為大家介紹了關於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值轉換undefinedundefined 轉換為falseObjectnull 轉換為false,其他為trueBooleanfalse 轉換為false,true 轉換為true##NumberString
#資料類型
# 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn