摘要:隱式強(qiáng)制類型轉(zhuǎn)換隱式強(qiáng)制類型轉(zhuǎn)換指的是一些特殊的操作的副作用來實(shí)現(xiàn)類型轉(zhuǎn)換,而非和等函數(shù)來實(shí)現(xiàn)值的類型轉(zhuǎn)換。下面幾種情況會(huì)發(fā)生布爾值的強(qiáng)制類型轉(zhuǎn)換語(yǔ)句中的天健判斷表達(dá)式。
引言
來到北京已經(jīng)有4個(gè)年頭了,做過一些測(cè)試、打雜、前端的工作之后,最后還是選擇了前端的工作。現(xiàn)階段主要還是在寫業(yè)務(wù)代碼,代碼質(zhì)量,工作效率就顯得尤為重要?!緦W(xué)以致用】這個(gè)系列主要記錄一些平時(shí)工作、學(xué)習(xí)遇到的一些問題,方便以后查漏補(bǔ)缺。
value 顯示強(qiáng)制類型轉(zhuǎn)換最新的 ECMAScript 標(biāo)準(zhǔn)定義了 7 種數(shù)據(jù)類型:
6 種原始類型:
Boolean
Null
Undefined
Number
String
Symbol (ECMAScript 6 新定義)
和
Object
通常我們?cè)诠ぷ鞯臅r(shí)候需要和后臺(tái)對(duì)接,函數(shù)在處理返回值的時(shí)候如果做了容錯(cuò)判斷,把數(shù)據(jù)轉(zhuǎn)換成我們想要的類型,在編寫后續(xù)業(yè)務(wù)代碼的時(shí)候就會(huì)更加輕松 :-D
下圖是 《JavaScript權(quán)威指南》中關(guān)于類型轉(zhuǎn)換的總結(jié):
舉個(gè)栗子:后臺(tái)返回值為一個(gè)字符串,內(nèi)容是0 ~ 5的數(shù)字,現(xiàn)在使用的時(shí)候需要將參數(shù)轉(zhuǎn)化為數(shù)字類型。
// wrong return Number(value) // "" -> 0 // undefined -> NaN // "aaa" -> NaN // right 前面是剔除掉 "" undefined ,后面可以剔除掉 NaN 的類型 if (value && Number(value) >= 0) { return Number(value); } else { return null; }
關(guān)于值的比較,當(dāng)我們只關(guān)心值是否正常時(shí),還有一個(gè)比較靠譜的方法:正則表達(dá)式,上面的例子也可以這樣來寫:
if (/[0-5]/.test(value)) { return Number(value); } else { return null; }
小結(jié):在判斷兩個(gè)值是否相等時(shí),最好顯式的轉(zhuǎn)化,讓代碼更加清晰易讀,然后用全等運(yùn)算符 === 或者 !== 來比較。
隱式強(qiáng)制類型轉(zhuǎn)換隱式強(qiáng)制類型轉(zhuǎn)換指的是一些特殊的操作的副作用來實(shí)現(xiàn)類型轉(zhuǎn)換,而非 Number() 和 String() 等函數(shù)來實(shí)現(xiàn)值的類型轉(zhuǎn)換。隱式強(qiáng)制類型轉(zhuǎn)換通常會(huì)使代碼更加簡(jiǎn)潔,但同時(shí)也增加了代碼的理解難度,我們編寫的代碼大都是給別人看的,要考慮到大家的理解是否保持一致。
數(shù)字和字符串的轉(zhuǎn)換,個(gè)人習(xí)慣是使用顯示的轉(zhuǎn)換,這里不再贅述。
ToBoolean下面幾種情況會(huì)發(fā)生布爾值的強(qiáng)制類型轉(zhuǎn)換:
if (..) 語(yǔ)句中的天健判斷表達(dá)式。
for (.. ; .. ; ..) 語(yǔ)句中的條件判斷表達(dá)式。
while (..) 循環(huán)中的條件判斷表達(dá)式。
? : 中的條件判斷表達(dá)式
|| 和 && 的做操作數(shù)
而 switch 語(yǔ)句使用的是全等判斷,不會(huì)發(fā)生隱式的強(qiáng)制轉(zhuǎn)換。
轉(zhuǎn)換的結(jié)果可以參照上面的表格,或者下面的鏈接
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/103513.html
摘要:下面分幾步來簡(jiǎn)單的探探不同類型的轉(zhuǎn)換吧以下的內(nèi)容,都可以從權(quán)威指南中找到。其他值轉(zhuǎn)換成在編寫代碼的過程中,幾乎不用考慮它的取值類型。核心內(nèi)置類,會(huì)嘗試先于可以理解為對(duì)象優(yōu)先轉(zhuǎn)換成數(shù)字例外的是,利用的是轉(zhuǎn)換。 最近在寫公司的登錄注冊(cè)模塊,遇到類型不同相比較的時(shí)候,就心驚膽戰(zhàn),每次都要用瀏覽器來驗(yàn)證一下,決定亂七八糟的隨便寫一下,方便日后自己回顧知識(shí)~ 弱類型帶來的那些讓人迷糊的事 弱類型...
摘要:聲明變量并初始化值為原始類型,一般稱之為字面量方式定義變量,或直接量方式定義變量。浮點(diǎn)類型表示包含小數(shù)部分。浮點(diǎn)類型所占的空間是整數(shù)類型的兩倍。 原始類型 原始類型,又稱原始值,是直接代表JavaScript語(yǔ)言實(shí)現(xiàn)的最底層數(shù)據(jù)。原始類型分為 boolean類型、number類型、string類型三種。聲明變量并初始化值為原始類型,一般稱之為字面量方式定義變量,或直接量方式定義變量。 ...
摘要:第十七天筆記類型轉(zhuǎn)換隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換是弱類型松散類型的在任何情況下都可以強(qiáng)制轉(zhuǎn)換定義類型類型以及類型的變量臥龍前端轉(zhuǎn)換為類型轉(zhuǎn)換為類型類型轉(zhuǎn)換為類型如果文本內(nèi)容是普通的文本非數(shù)字轉(zhuǎn)換后的結(jié)果為如果文本內(nèi)容是數(shù)字值轉(zhuǎn)換后的結(jié)果為對(duì) 第十七天筆記 類型轉(zhuǎn)換 隱式類型轉(zhuǎn)換 隱式類型轉(zhuǎn)換 JavaScript是弱類型/松散類型的 在任何情況下都可以強(qiáng)制轉(zhuǎn)換 //定義number類型 s...
摘要:返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。布爾值中布爾值有兩個(gè)和和都表示值的空缺,但事從背后更深遠(yuǎn)的角度考慮,他們的還是有差別的。首先我們來看一下類型轉(zhuǎn)化表任意的值都可以轉(zhuǎn)換為布爾值,只有會(huì)被轉(zhuǎn)換為,其他所有值都會(huì)被轉(zhuǎn)換成。 開辟了一個(gè)關(guān)于javascript的基礎(chǔ)系列,更加深入、細(xì)致的了解這門語(yǔ)言。今天分享的是js的數(shù)據(jù)類型。 javascript的數(shù)據(jù)類型可以分為兩類:原始類...
摘要:基本值原始值原始的布爾類型有兩個(gè)值和。創(chuàng)建布爾值的方式直接用字面量用函數(shù),將其他任意值轉(zhuǎn)換成對(duì)應(yīng)的原始布爾值。使用兩次非運(yùn)算符,將其轉(zhuǎn)換成對(duì)應(yīng)的布爾類型。下面來看一些將其他類型轉(zhuǎn)換成布爾類型的例子。 基本值(原始值) 原始的布爾類型boolean有兩個(gè)值: false 和 true。 > typeof false boolean > typeof true boolean 創(chuàng)建布爾值的...
閱讀 3413·2021-11-18 10:02
閱讀 3549·2021-10-11 10:58
閱讀 3470·2021-09-24 09:47
閱讀 1296·2021-09-22 15:21
閱讀 4285·2021-09-10 11:10
閱讀 3358·2021-09-03 10:28
閱讀 1868·2019-08-30 15:45
閱讀 2329·2019-08-30 14:22