<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Number 型別使用 IEEE 754 格式表示整數和浮點值(在某些語言中也叫雙精度值)。
IEEE二進位制浮點數算術標準;
IEEE 754規定了四種表示浮點數值的方式:單精確度(32位元)、雙精確度(64位元)、延伸單精確度(43位元以上,很少使用)與延伸雙精確度(79位元以上,通常以80位元實現)。
js中用的就是雙精確度(64位元)
不同數值型別有不同的數值字面量格式:
數值中必須包含小數點,而且小數點後面必須至少有一個數位。
經典問題:0.1 + 0.2 == 0.3 嗎? 答案是不相等;
因為在浮點數運算過程中存在舍入誤差,之所以存在這種舍入錯誤,是因為使用了IEEE754數值,這種錯誤並非ECMAScript 所獨有。只要是使用這種格式的語言都有這個問題。
Number.MIN_VALUE
5e-324Number.MAX_VALUE
1.797 693 134 862 315 7e+308console.log(NaN == NaN); // false
isNaN()
函數, 判斷傳入其中的引數是否不是數值;isNaN()
會嘗試把引數轉換成數值console.log(isNaN(NaN)); // true console.log(isNaN('abc')); // true console.log(isNaN('123')); // false console.log(isNaN(true)); // false console.log(isNaN(12)); // false
首先會呼叫物件的valueOf() 方法,然後再確定返回的值是否可以轉換為數值。如果不能,再呼叫 toString()方法, 並測試其返回值。
Number()函數,可用於任何資料型別:
資料型別 | 轉換規則 |
---|---|
布林值 | true為1,false為0 |
數值 | 直接返回 |
null | 0 |
undefined | NaN |
字串 | 空字串返回0 |
數值字元返回對應數位(前面包含加減號的、浮點值、十六進位制格式會轉換為對應的十進位制整數值) | |
除了上面情況外,都返回NaN | |
物件 | 呼叫 valueOf()方法,並按照上述規則轉換返回的值。如果轉換結果是 NaN,則呼叫 toString()方法,再按照轉換字串的規則轉換。 |
console.log(Number(false)); // 0 console.log(Number(null)); // 0 console.log(Number(undefined)); // NaN console.log(Number(1)); // 1 console.log(Number(0012)); // 10 八進位制轉換 console.log(Number(070)); // 56 八進位制轉換 console.log(Number(0x1f)); // 31 十六進位制轉換為十進位制整數 console.log(Number(018)); // 18 忽略前面0 console.log(Number(12.23)); // 12.23 console.log(Number('123')); // 123 console.log(Number('123bule')); // NaN console.log(Number(' 123')); // 123 console.log(Number('')); // 0
parseInt()函數 ++需要得到整數時優先使用 parseInt()函數;++ ( Number()函數轉換字串相對複雜,如果已經明確就是想要取整的話,優先使用parseInt()函數 )
parseInt()函數會忽略字串最前面的空格,第一個非空格字元開始轉換;如果第一個字元不是數值字元、加號或減號,parseInt()立即 返回 NaN。
parseInt() 更關注於字串是否包含數值,如下:
console.log(parseInt(123)); // 123 console.log(parseInt(0123)); // 83 解釋為八進位制整數。 console.log(parseInt(false)); // NaN console.log(parseInt('123')); // 123 console.log(parseInt('0123')); // 123 console.log(parseInt('123.23')); // 123 console.log(parseInt('123bule')); // 123 console.log(parseInt(' 123')); // 123 console.log(parseInt('23.74')); // 23 console.log(parseInt('')); // NaN // 與Number()區別 console.log(Number('')); // 0 console.log(Number(false)); // 0 console.log(Number('123bule')); // 123 // 從這裡可以看parseInt() 更關注於字串是否包含數值
parseInt("0xAF", 16); // 175 parseInt("AF", 16); // 175 提供了16進位制引數,可以省略0x parseInt("AF"); // NaN , 沒有提供第二個引數,就不可以
不傳底數引數相當於讓 parseInt()自己決定如何解析,所以為避免解析出錯,建議始終傳給它第二個引數。
parseInt()函數可以接收第二個引數,用於指定底數(進位制數);
如下:
parseFloat()
函數 同parseInt()函數類似。區別之處在於,一個是它識別有效的小數點(也就是第一次出現的小數點,再後面的再出現小數點就都忽略了);另一個是始終忽略字串開頭的零; parseFloat()只解析十進位制值,不能指定底數; 十六進位制數值始終會返回 0
如下:
console.log(parseFloat('123bule')); // 123 console.log(parseFloat('23.74')); // 23.74 console.log(parseFloat('023.74')); // 23.74 console.log(parseFloat('23.74.2')); // 23.74 console.log(parseFloat(0xAF)); // 175 console.log(parseFloat('0xAF')); // 0 console.log(parseFloat(012)); // 10 console.log(parseFloat('012')); // 12
到此這篇關於JavaScript 中的資料型別Number的文章就介紹到這了,更多相關JavaScript Number內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45