国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS 數字轉換研究總結

2019-11-20 21:22:14
字體:
來源:轉載
供稿:網友
JS 轉換數據為數字的方法有三類五種,包括:

•強制轉換,JS 的基本數據類型都這以這樣轉換成對應的類型(Number(v))
•原生函數,這兩個函數有不一樣的結果(parseInt(v,radix)、parseFloat(v))
•隱式轉換,在執行的時候 JS 會轉換變量為對應類型(位計算,數學計算)
轉換的原值也可以簡單分為三類:對象、特殊值、字符串。

JS 中的特殊值包括以下幾個。

•undefined,未定義,當變量聲明但沒賦值或者一個對象不存在的屬性的值就是這個了。
•NaN/Infinity,這是兩個頑固的“數字”(typeof == number),分別表示非數字和無限大的數。貌似沒什么用,轉換成數字失敗的話,返回值基本是NaN。
•null,當成零值用的對象(typeof == object)。
•true/false,布爾值,表示真、假,等價于1/0。
對于字符串,根據內容還可以進行細分。根據 JS 數字表達式,可以分為合法和非法。合法的數字有幾種不同的分類方法:

•符號:正號、負號、無符號
•進制:八進制、十進制、十六進制
•科學記數法
•小數、整數,以及小數的簡寫
根據上面的分類,我制作了一個 Demo,用來測試不同方法、數值轉換后的結果。下面的截圖是在 chrome 下的轉換。



看結果只有位計算能把任何值轉換為有限數(isFinite),數學計算和強制轉換的結果是一樣的。

特殊值的轉換和原值以及轉換方法都有關系。parseInt/parseFloat 全部轉換失敗,返回 NaN。

•NaN/undefined 用其它方法全轉換成 NaN;
•Infinity 被 parseInt 轉換成 NaN,剩下的方法不改變它的值;
•null/false/true 不能被 parseInt/parseFloat 轉換,返回 NaN。
對字符串的轉換分析主要看轉換方法,但全部方法都不支持八進制表示的數字,而是當成對應的十進制數。

•邏輯計算轉換除負十六進制數外的合法表達式,并舍去小數部分;不合法的表達式返回零。
•數學計算/Number 和邏輯計算類似,但不舍去小數;除空字符串外的不合法表達式返回 NaN。
•parseInt 也是只保留整數部分;但是對不合法的表達式,取字符串前面合法的整數(十進制、十六進制,不包括科學記數法)部分轉換,沒有則返回 NaN。
•parseFloat 和 parseInt 類似,不同的是能識別并保留小數部分,并且不支持十六進制數。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛南县| 永吉县| 和硕县| 丰镇市| 施秉县| 和龙市| 隆子县| 卢氏县| 富平县| 老河口市| 同心县| 龙里县| 灌云县| 永善县| 廊坊市| 石首市| 临潭县| 石景山区| 湘阴县| 胶南市| 安陆市| 新乡市| 保靖县| 井冈山市| 芦溪县| 阜平县| 钟山县| 东光县| 革吉县| 山丹县| 八宿县| 广河县| 东乡族自治县| 宝兴县| 大田县| 山西省| 双峰县| 华安县| 易门县| 桐城市| 邛崃市|