如何在JavaScript中將數值轉換為Boolean

2020-12-16 讀芯術

全文共1396字,預計學習時長7分鐘

JavaScript中如何將數值轉換為Boolean?這篇文章幫你搞定!往下看吧~

字符串

conststring = 'string';!!string; // true

Boolean(string); // true

數值

constnumber = 100;!!number; // true

Boolean(number); // true

虛值

在JavaScript中,有6個虛值。如果將其中任何一個字符串轉換為Boolean,它將變為false 。

false

undefined

null

NaN

"" (empty string)

任何不為虛值的都會轉換為true。

示例

虛值的應用:

!!false;// false

!!undefined; // false

!!null; // false

!!NaN; // false

!!0; // false

!!''; // false

虛值在Boolean上下文中的應用:

Boolean(false);// false

Boolean(undefined); // false

Boolean(null); // false

Boolean(NaN); // false

Boolean(0); // false

Boolean(''); // false

當心 『false』

constvalue = 'false';!!value; // true

Boolean(value); // true

注意「false」必須寫在引號之間。雖然是虛值,但實際上是一個字符串。大多數人都不會在這裡中圈套,但還是需要隨時保持警惕。

如何操作該代碼

首先! 將該值強制轉換為Boolean並取反。在上下文中, !value將變回虛值。所以為了將value恢復成真值,將另一個「!」 放入操作中,因此這裡出現了兩個!。

const value = 'string';!value; //false!!value; // true

速度測試

boolean vs !!

看起來像 !! 但測試速度比Boolean快。

有些人更喜歡Boolean,因為它更明確。但是,KyleSimpson在《你不知道的JavaScript》中提到,這兩者都是明確的。

//better (works explicitly):

if (!!a) {

}// also great (works explicitly):

if (Boolean(a)) {

}

這裡不會給你標準答案,你可以按需選擇。筆者會在個人開發的項目中繼續使用!!,其鍵入較少而且筆者對這種語法有了解。

反之,如果是作為團隊考慮,筆者可能會選擇Boolean。大多數開發人員都能更好地理解這一點。無論選擇哪一個,最重要的是保持代碼一致,不要換來換去,選擇一種並堅持下去。

這更像是一種偏好選擇,不要剝奪自己理解兩種代碼的權利。

避免newBoolean

使用基元而不是對象類型

var str = 'str';// Avoid

typeof new Boolean(str); // object// Preferred

typeof Boolean(str); // boolean

typeof !!str; // boolean

CJJ.:值得注意的是,new Boolean不是boolean,而是布爾值的示例。基元比較廉價,相比對象類型應優先使用。

CJJ.:new Boolean(str) 可以返回對象類型。Boolean(str)只返回boolean的原始值。筆者猜測Boolean(str)比!!str更快。因為這只是一項操作,但是瀏覽器也有可能實施優化,以便程式設計師看到 !! 他們知道直接將參數轉換為boolean原始值(而不是實際執行NOT()連續兩次)。

CJJ.:基元很便宜,它們是不可變的,因此可以共享引用,而不必在實例上保留任何狀態。要麼true要麼false。

但newBoolean(str)是一個對象。它有自己的唯一存儲地址,並且可以保存唯一的內部狀態。這意味著它不能只保存對不可變單例實例的引用。每次運行new Boolean(str) 實例化都會產生一個全新的Boolean()對象。

特别致謝:CJJ

使用Boolean構造函數刪除空字符串

CJJ.:這是經典示例。如果得到一個用逗號分隔的字符串值列表,並且想要過濾掉空字符串,則可以將Boolean構造函數傳遞給Array.prototype.filter,它將自動去除零長度字符串,而僅保留一個有效的字符串數組。

var str= 'some,list,,of,values';

var arr = str.split(',');arr; // [ 'some', 'list', '', 'of', 'values']arr.filter(Boolean); // [ 'some', 'list', 'of', 'values' ]

特别致謝:CJJ

你學會了嗎?

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • boolean和Boolean區別
    小知識(下面來源百度百科)程序中的booleanboolean 數據類型 boolean 變量存儲為 8位(1 個字節)的數值形式,但只能是 True 或是 False。boolean 變量的值顯示為 True 或 False(在使用 Print 的時候),或者 #TRUE# 或 #FALSE#(在使用 Write # 的時候)。
  • 在javascript程式語言中,數據類型boolean的應用場景
    在javascript編程中,數據類型布爾是最常見的一種類型。此種類型邏輯上比較簡單,只有兩個值:true和false。布爾數據類型與計算機底層的電路開與關有著密切的關聯。但是,布爾值true不一定是1,false不一定是0。
  • 每日一課 | JavaScript基礎
    9    <script type="text/javascript">10        <!20 1 使用:Number()、parseInt() 和parseFloat() 做類型轉換 2 Number()強轉一個數值(包含整數和浮點數)。 3 *parseInt()強轉整數, 4 *parseFloat()強轉浮點數 5 6 函數isNaN()檢測參數是否不是一個數字。
  • java中boolean的用法解析
    boolean 數據類型 boolean 變量存儲為 8 位(1 個字節)的數值形式,但只能是 True 或是 False。本文引用地址:http://www.eepw.com.cn/article/201809/389052.htm當作為一個構造函數(帶有運算符 new)調用時,Boolean() 將把它的參數轉換成一個布爾值,並且返回一個包含該值的 Boolean 對象。
  • java中boolean的用法
    boolean 數據類型 boolean 變量存儲為 8 位(1 個字節)的數值形式,但只能是 True 或是 False。   當作為一個構造函數(帶有運算符 new)調用時,Boolean() 將把它的參數轉換成一個布爾值,並且返回一個包含該值的 Boolean 對象。
  • 七天學會javascript第一天javascript介紹
    javascript介紹javascript數據類型javascript運算符javascript對象javascript"駝峰規則"系統的關鍵詞不能定義為變量。數值型:直接寫結果。var testSqrt = Math.sqrt(數值);ceil方法:進一取整 Math.ceil(數值);*******floor方法:舍一取證 Math.floor(數值); parseInt方法:將數字字符轉換為整數。
  • MySQL BOOL/BOOLEAN 與 TINYINT 測試總結
    【導讀】MySQL資料庫產品提供了二種比較特殊的數據類型: SET(集合類型)、ENUM(枚舉類型)、BOOL/BOOLEAN(布爾類型),而多數開發人員,甚至DBA從業者對如何使用這三種數據類型的應用場
  • stata練習-數值變量與字符變量的轉換
    」;另一種是將字符變量轉換成數值變量,其用到命令是「destring」。接下來我們用數據文件「1.17練習數據」中的數據,逐一演示在STATA中如何進行數值變量與字符變量之間的轉換。1.17.1 數值變量轉換成字符變量STATA中將數值變量轉換成字符變量的命令是tostring,其表達式是:tostring varlist , {generate(newvarlist)|replace} [tostring_options]其中,tostring是STATA中tostring命令的固定格式,varlist指具體的變量名,generate
  • javascript之常用數據類型及判斷方法
    ,今天,我們來具體重新了解下javascript中的常見數據類型以及他們的判斷方法。,1.基本數據類型:包括number:數字類型;string:字符串類型;boolean布爾類型。根據複雜方式區分javascript數據二.如何判斷當前數據類型呢?
  • 如何在Python中將語音轉換為文本
    語音識別是計算機軟體識別口語中的單詞和短語並將其轉換為人類可讀文本的能力。在本教程中,你將知道如何使用SpeechRecognition 庫在Python中將語音轉換為文本 。因此,我們不需要從頭開始構建任何機器學習模型,該庫為我們提供了各種著名的公共語音識別API(例如Google Cloud Speech API,IBM Speech To Text等)的便捷包裝。
  • Excel文本型數值如何轉換為純數字?
    excel文本型的數值如何轉換為純數字?這個是使用數據裡面的分列命令進行修改的,一起來看看吧。1.當前我們可以看到這個數值單元格左上角會有一個綠色的三角號。下面要進行轉換。  3.選中它點擊數據裡面有一個分列的按鈕。
  • 如何正確實現PHP字符串轉換為數值的需求
    如何正確實現PHP字符串轉換為數值的需求 PHP字符串轉換為數值的方法不是很好掌握,其中的技巧很多。本文就為大家詳細介紹了相關的實現方法,希望對大家有所幫助。
  • 什麼是javascript?javascript需要學哪些內容?這篇文章告訴你!
    剩餘可以是任意字母,美元符號,下劃線和數字(3)不能使用javascript中的關鍵字(保留字)來命名變量(4)中文也可以聲明變量,不建議使用它。>一些特殊情況(除數為0,最大值變化)5.1.3布爾類型(boolean)true(真),false(假),都是小寫的。
  • 尚學堂知識整理:Java boolean與short數據類型
    可以使用布爾字面量如下 -布爾變量不能轉換為任何其他數據類型,反之亦然。boolean數據類型是所有關係運算符返回的類型,如a<b。boolean數據類型是控制控制語句的條件表達式所需的類型,例如if和for。
  • 一文讀懂js中的隱式類型轉換
    前言今天來詳細了解一下javascript中的隱式類型轉換,通過在各種情況下發生的隱式類型的例子,來詳細的了解隱式類型轉換的過程。如何轉換-前置知識1.對象類型轉換當對象類型進行類型轉換時,會調用js內部一個方法toPrimitive, 此方法接收兩個參數,一個參數為需要轉換的對象,另一個方法接收一個期望類型,string或number。
  • javascript進位的轉換
    這時候就需要我們用到二、八、十、十六進位之間的轉換了十進位和二進位之間的轉換十轉二:用到的方法是除二取餘,倒序排列例如將52轉為二進位結果為110100二轉十:從左往右,0開始排序依次為數值的數值*2的0次方,數值x*2的1次方…十進位和八/十六進位之間的轉換十進位先轉為二進位,再由二進位轉換二進位轉八或十六進位時要看對應的ASCII
  • 如何將文本型數字轉換成數值型?
    沒錯,這些帶綠色小三角的數據就是文本型數據,相對於數值型數據來說,在我們對表格數據進行後期統計處理之前,需要將它們進行轉換。今天幫主就給大家支幾招,如何將文本型數據轉換為數值型數據。1、 智能提示中直接轉換直接選中文本型數據,點擊右上角帶感嘆號的智能標識,選擇「轉換為數字」即可。
  • 文本轉換為數值你知道怎麼實現嗎?
    我們在工作中經常遇到得到的一組數據,當我們在進行進行計算時,總是會報錯,得不到我們想要的結果,如下我們在求和的時候,發現求取的數據為0.
  • JavaScript數據類型轉換
    ,對於Number和Boolean實際上就是調用的toString()方法,但是對於null和undefined,就不會調用toString()方法,它會將null直接轉換為"null",將undefined 直接轉換為"undefined"。
  • 探秘JavaScript中的六個字符
    -1370.html原文:http://jazcash.com/a-javascript-journey-with-only-six-characters/JavaScript 是一個奇怪而有趣的語言,我們可以寫一些瘋狂卻仍然有效的代碼。