日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

分不清Boolean和boolean,我被同事diss了!

admin
2025年4月11日 16:43 本文熱度 58

背景

這幾天寫代碼,遇到一個不確定的知識點:我在vue的props中如何給一個屬性定義小寫的bolean,代碼就會報錯

但是大寫的Bolean就沒問題

由于我在其他地方我看大小寫都可以,有點疑惑,于是想去請教一下同事。然而,沒想到同事上來就diss我:

這么基礎的知識你都不清楚?這兩個根本就不是一個東西!

我有點不開心,想反駁一下:

這兩個不都是描述類型的東西嗎?我給你看其他地方的代碼,這兩個都是可以混用的!

同事有點不耐煩,說道:大姐,boolean是TS中的類型聲明,Boolean是JavaScript 的構造函數,根本不是一個東西吧!

行吧,我也剛入門不久,確實不了解這個東西,只能強忍委屈,對同事說了聲謝謝,我知道了!

然后,我好好的學習了一下Boolean和boolean的知識,終于搞明白他們的區別了。

Boolean和boolean

本質區別

同事說的很對,他們兩個的本質區別就是一個是JavaScript語法,一個是TypeScript語法,這意味著非TypeScript項目是不存在boolean這個東西的。

Boolean 是 JavaScript 的構造函數

Boolean 是 JavaScript 中的內置構造函數,用于布爾值的類型轉換或創建布爾對象。

js
typeof Boolean; // "function"

boolean 是 TypeScript 的基本類型

  • 如果使用了 TypeScript,boolean 是 TypeScript 中的基本類型,用于靜態類型檢查。
  • 在 JavaScript 的運行時上下文中,boolean 并不存在,僅作為 TypeScript 的靜態檢查標識。
js
typeof boolean; // ReferenceError: boolean is not defined

TS中作為類型的Boolean和boolean

在TypeScript中,Boolean和boolean都可以用于表示布爾類型

js
export interface ActionProps { checkStatus: Boolean } export interface RefundProps { visible: boolean }

但是,他們存在一些區別

boolean

  • boolean 是 TypeScript 的基本類型,用于定義布爾值。
  • 它只能表示 truefalse
  • 編譯后 boolean 不會存在于 JavaScript 中,因為它僅用于靜態類型檢查。
js
//typescript let isActive: boolean; // 只能是 true 或 false isActive = true;       // 正確 isActive = false;      // 正確 isActive = new Boolean(true); // 錯誤,不能賦值為 Boolean 對象

Boolean

  • Boolean 是 JavaScript 的內置構造函數,用于將值顯式轉換為布爾值或創建布爾對象(Boolean 對象)。
  • 它是一個引用類型,返回的是一個布爾對象,而不是基本的布爾值。
  • 在 TypeScript 中, Boolean 表示構造函數類型,而不是基本的布爾值類型

js
//typescript let isActive: Boolean; // 類型是 Boolean 對象 isActive = new Boolean(false); // 正確,賦值為 Boolean 對象 isActive = true; // 正確,基本布爾值也可以兼容

關鍵區別

特性booleanBoolean
定義TypeScript 的基本類型JavaScript 的構造函數
值類型只能是 truefalse是一個布爾對象
推薦使用場景用于定義基本布爾值類型很少用,除非需要顯式構造布爾對象
運行時行為不存在,只在編譯時有效在運行時是 JavaScript 的構造函數
性能高效,直接操作布爾值對象包裝,性能較差

為什么盡量避免使用 Boolean

類型行為不一致Boolean 是對象類型,而不是基本值類型。這會在邏輯運算中導致混淆:

js
const flag: Boolean = new Boolean(false); if (flag) {  console.log("This will run!"); // 因為對象始終為 truthy }

性能開銷更大Boolean 會創建對象,而 boolean 是直接操作基本類型。

vue中的Boolean與boolean

Vue 的運行時框架無法識別 boolean 類型,它依賴的是 JavaScript 的內置構造函數(如 BooleanStringNumber 等)來檢查和處理 props 類型。

因此,props的Type只能是BooleanStringNumber

但是如果vue中開啟了ts語法,就可以使用boolean 表示類型了

js
<script lang="ts" setup>   interface IProps {    photoImages?: string[],    isEdit?: boolean } const props = withDefaults(defineProps<IProps>(), {    photoImages: () => [],    isEdit: true }) </script>

作者:快樂就是哈哈哈
鏈接:https://juejin.cn/post/7439576043223203892
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

該文章在 2025/4/12 18:00:23 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 欧美日韩精品中文字幕 | 国产理论片在线观看 | 亚洲国产精品成人va在线观看 | 日本三级在线 | 99精品国产一区二区 | 精品第一国产久精国产宅男66 | 国产高清视频在线免费观看 | 日韩99在线一级 | www在线观看一区二区三区 | 国产免费无遮 | 亚洲人和日本人jzz视频 | 亚洲性影院在线看 | 不一样的国产爽歪歪视频 | igao视频在线观看免费 | 天堂资源最新在线 | 日本欧美中文字幕福利一区 | 欧美日韩一区二区在线观看视频 | 日本日本乱码伦视频在线 | 欧美日韩午夜视频在 | 精品国产国产综合精品 | 色老板在线精品免费视频 | 成人品观看免费 | 99爱第一视频在线观看 | 欧美日韩亚洲第一区 | 九九在线精品视 | 91香蕉视 | 国产91小视频在线观看 | 日本韩国亚洲综合日韩欧美国产 | 亚洲欧美综合 | 国产福利精品一区二区 | 狠狠影院| 大地影院mv高清在线观看免费 | 99re热| 日韩精品欧美 | 国产一区二区在线播放女友 | 免费人成年激情视频在线观看 | 757国产午夜福利在线播放 | 国内外精品激情刺激在线 | 免费看成年视频在线入口完整版 | 国产开嫩苞实拍在线播放视频 | 日本大胆一区二区三区 |