日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

022_JavaScript数字

發(fā)布時(shí)間:2025/4/17 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 022_JavaScript数字 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. JavaScript只有一種數(shù)值類(lèi)型Number。(沒(méi)有其它語(yǔ)言的short、int、long、float、double)

2. 書(shū)寫(xiě)數(shù)值時(shí)帶不帶小數(shù)點(diǎn)均可。

3. JavaScript數(shù)值始終是64位的浮點(diǎn)數(shù)

3.1. JavaScript數(shù)值始終以雙精度浮點(diǎn)數(shù)來(lái)存儲(chǔ), 根據(jù)國(guó)際IEEE 754標(biāo)準(zhǔn)。

3.2. 此格式用64位存儲(chǔ)數(shù)值, 其中0到51存儲(chǔ)數(shù)字(片段), 52到62存儲(chǔ)指數(shù), 63位存儲(chǔ)符號(hào):

3.3. 整數(shù)類(lèi)型的范圍: 5e-324 ~ 1.7976931348623157e+308。

3.4. 值得注意的是, 對(duì)于整數(shù)的位運(yùn)算(比如位移等操作), JavaScript僅支持32位整型數(shù), 也即從-2147483648到+2147483647之間的整數(shù)。

4. 精度

4.1. 整數(shù)會(huì)被精確到15位:

var a = 999999999999999; // a是15位整數(shù)最大值, 能保證精度, 是999999999999999 var b = 9999999999999997; // b是16位整數(shù), 不保證精度 var c = 9999999999999999; // c是16位整數(shù), 不保證精度 // 15位的整數(shù)進(jìn)行數(shù)學(xué)運(yùn)行能夠保證精準(zhǔn) var d = (((999999999999999 - 100000 - 1) / 2 - 9999) / 4 * 8 + 111999 + 8000) / 9 / 3 + 960900000000000;

4.2. 小數(shù)在進(jìn)行數(shù)學(xué)運(yùn)算的時(shí)候最大數(shù)是17位, 但是浮點(diǎn)的算數(shù)并不總是100%精準(zhǔn):

var e = 0.2 + 0.1; // 小數(shù)在進(jìn)行數(shù)學(xué)運(yùn)算的時(shí)候最大數(shù)是17位 var f = 0.3 - 0.2111; // 小數(shù)在進(jìn)行數(shù)學(xué)運(yùn)算的時(shí)候最大數(shù)是17位 var g = 0.001 + 1.1; // 并不總是17位小數(shù) // 我們?cè)趯?duì)小說(shuō)進(jìn)行算數(shù)運(yùn)算的時(shí)候, 通常對(duì)小說(shuō)進(jìn)行擴(kuò)大10的幾次方, 計(jì)算完成后, 再除以這個(gè)10的幾次方 var h = (0.3 * 10000 - 0.2111 * 10000) / 10000;

5. 科學(xué)計(jì)數(shù)法

5.1. 超大或超小的數(shù)可通過(guò)科學(xué)計(jì)數(shù)法來(lái)寫(xiě)。

5.2. 大于等于le+21的數(shù)字會(huì)自動(dòng)使用科學(xué)計(jì)數(shù)法輸出。

5.3. 小于le+21的數(shù)字縱然我們用科學(xué)計(jì)數(shù)法表示, 但輸出時(shí)也會(huì)是完整數(shù)字。

5.4. 默認(rèn)把具有6個(gè)或6個(gè)以上前導(dǎo)0的浮點(diǎn)數(shù)轉(zhuǎn)換成科學(xué)計(jì)數(shù)法。

var i = 9.99999999999999930000e20; // 小于le+21的數(shù)字縱然我們用科學(xué)計(jì)數(shù)法表示, 但輸出時(shí)也會(huì)是完整數(shù)字。 var j = 9.99999999999999940000e20; // 發(fā)生了舍入, 大于le+21, 使用科學(xué)計(jì)數(shù)法輸出 var k = 1e21; // 科學(xué)計(jì)數(shù)法 var l = 0.0000001; // 默認(rèn)把具有6個(gè)或6個(gè)以上前導(dǎo)0的浮點(diǎn)數(shù)轉(zhuǎn)換成科學(xué)計(jì)數(shù)法。

6. 數(shù)字字符串

6.1. JavaScript字符串可以擁有數(shù)字內(nèi)容。

6.2. 在所有數(shù)字運(yùn)算中, JavaScript會(huì)嘗試將字符串轉(zhuǎn)換為數(shù)字。

6.3. 實(shí)例

var m = '100' / '10'; // 結(jié)果是10 var n = '100' * '10'; // 結(jié)果是1000 var o = '100' - '10'; // 結(jié)果是90

7. NaN-非數(shù)值

7.1. NaN 屬于 JavaScript 保留詞,指示某個(gè)數(shù)不是合法數(shù)。

7.2. 嘗試將一個(gè)字符串完整的轉(zhuǎn)換成數(shù)字時(shí), 如果轉(zhuǎn)換失敗, 就會(huì)得到NaN(Not a Number)。

7.3. isNaN()函數(shù)

7.3.1.?您可使用全局JavaScript函數(shù)isNaN()來(lái)確定某個(gè)值是否是非數(shù)字值。

7.3.2.?語(yǔ)法

isNaN(x)

7.3.3.?參數(shù)

7.3.4. 如果x是特殊的非數(shù)字值NaN(或者是被轉(zhuǎn)換為這樣的值), 返回的值就是true。如果x是其他值, 則返回false。

7.3.5. 如果把NaN與任何值(包括其自身)相比得到的結(jié)果均是false, 所以要判斷某個(gè)值是否是NaN, 不能使用==或===運(yùn)算符。正因?yàn)槿绱? isNaN()函數(shù)是必需的。

7.4. NaN是數(shù)值類(lèi)型: typeOf NaN返回number。

7.5. 實(shí)例

var u = isNaN("111"); // 返回false var v = isNaN("111a"); // 返回true var w = isNaN(NaN); // 返回true, 因?yàn)镹aN不是數(shù) var x = typeof(NaN); // 返回number

8. 無(wú)窮數(shù)

8.1. Infinity(或-Infinity)是JavaScript在計(jì)算數(shù)時(shí)超出最大可能數(shù)范圍時(shí)返回的值。

8.2. Infinity是數(shù)值類(lèi)型: typeOf Infinity返回number。

8.3. isFinite()函數(shù)

8.3.1. 您可使用全局JavaScript函數(shù)isFinite()檢查某個(gè)值是否為有窮大的數(shù)。

8.3.2. 語(yǔ)法

isFinite(number)

8.3.3. 參數(shù)

8.3.4. 如果number是有限數(shù)字或可轉(zhuǎn)換為有限數(shù)字, 那么返回true。否則, 如果number是NaN(非數(shù)字)或者是正、負(fù)無(wú)窮大的數(shù), 則返回false。

var y = isFinite(111); // 返回true var z = isFinite("111"); // 返回true var A = isFinite("111a"); // 返回false var B = isFinite(Infinity); // 返回false, 因?yàn)镮nfinity是正無(wú)窮大 var C = isFinite(-Infinity); // 返回false, 因?yàn)?Infinity是負(fù)無(wú)窮大 var D = isFinite(NaN); // 返回false, 因?yàn)镹aN非數(shù)字 var E = typeof(Infinity); // 返回number var F = typeof(-Infinity); // 返回number var G = isNaN(Infinity); // 返回false, 因?yàn)镮nfinity是正無(wú)窮數(shù) var H = isNaN(-Infinity); // 返回false, 因?yàn)?Infinity是負(fù)無(wú)窮數(shù)

9. 數(shù)字和字符串相加

9.1. JavaScript的加法和級(jí)聯(lián)(concatenation)都使用+運(yùn)算符。數(shù)字用加法, 字符串用級(jí)聯(lián)。

9.2. 如果對(duì)兩個(gè)字符串相加,結(jié)果將是一個(gè)字符串的級(jí)聯(lián):

var x = "10"; var y = "20"; var z = x + y; // z 將是 1020(字符串)

9.3. 如果您對(duì)一個(gè)數(shù)和一個(gè)字符串相加, 結(jié)果也是字符串級(jí)聯(lián):

var x = 10; var y = "20"; var z = x + y; // z 將是 1020(一個(gè)字符串)

9.4. 兩個(gè)或多個(gè)數(shù)字算數(shù)運(yùn)算, 并且在語(yǔ)句最左側(cè)(JavaScript從左向右進(jìn)行編譯), 之后又和字符串級(jí)聯(lián), 這種情況會(huì)先進(jìn)行算數(shù)運(yùn)算再和字符串級(jí)聯(lián)。

var x = 10; var y = 20; var z = "30"; var result = x + y + z; // 因?yàn)閤和y都是數(shù), 10+20將被相加。因?yàn)閦是字符串, 30+"30"被級(jí)聯(lián)。

10. 進(jìn)制

10.1. 計(jì)算機(jī)中常見(jiàn)的進(jìn)制是: 二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制。

10.2. 八進(jìn)制字面量的首數(shù)字必須是0, 其后的數(shù)字可以是任何八進(jìn)制數(shù)字(0-7)。

var x = 011; // x將是9

10.3. 十六進(jìn)制字面量以0x或0X前綴開(kāi)頭, 然后是任意的十六進(jìn)制數(shù)字(0到9和A到F)。

var x = 0xFF; // x將是255

10.4. 默認(rèn)地, Javascript把數(shù)顯示為十進(jìn)制數(shù)。

10.5. 盡管所有整數(shù)都可以表示為八進(jìn)制或十六進(jìn)制, 但所有數(shù)學(xué)運(yùn)算返回的都是十進(jìn)制結(jié)果。

11. 例子

11.1. 代碼

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>JavaScript數(shù)字</title></head><body><script type="text/javascript">var a = 999999999999999; // a是15位整數(shù)最大值, 能保證精度, 是999999999999999var b = 9999999999999997; // b是16位整數(shù), 不保證精度var c = 9999999999999999; // c是16位整數(shù), 不保證精度// 15位的整數(shù)進(jìn)行數(shù)學(xué)運(yùn)行能夠保證精準(zhǔn)var d = (((999999999999999 - 100000 - 1) / 2 - 9999) / 4 * 8 + 111999 + 8000) / 9 / 3 + 960900000000000;var e = 0.2 + 0.1; // 小數(shù)在進(jìn)行數(shù)學(xué)運(yùn)算的時(shí)候最大數(shù)是17位var f = 0.3 - 0.2111; // 小數(shù)在進(jìn)行數(shù)學(xué)運(yùn)算的時(shí)候最大數(shù)是17位var g = 0.001 + 1.1; // 并不總是17位小數(shù)// 我們?cè)趯?duì)小說(shuō)進(jìn)行算數(shù)運(yùn)算的時(shí)候, 通常對(duì)小說(shuō)進(jìn)行擴(kuò)大10的幾次方, 計(jì)算完成后, 再除以這個(gè)10的幾次方var h = (0.3 * 10000 - 0.2111 * 10000) / 10000; var i = 9.99999999999999930000e20; // 小于le+21的數(shù)字縱然我們用科學(xué)計(jì)數(shù)法表示, 但輸出時(shí)也會(huì)是完整數(shù)字。var j = 9.99999999999999940000e20; // 發(fā)生了舍入, 大于le+21, 使用科學(xué)計(jì)數(shù)法輸出var k = 1e21; // 科學(xué)計(jì)數(shù)法var l = 0.0000001; // 默認(rèn)把具有6個(gè)或6個(gè)以上前導(dǎo)0的浮點(diǎn)數(shù)轉(zhuǎn)換成科學(xué)計(jì)數(shù)法。// 在所有數(shù)字運(yùn)算中, JavaScript會(huì)嘗試將字符串轉(zhuǎn)換為數(shù)字。var m = "100" / "10"; // 結(jié)果是10var n = "100" * "10"; // 結(jié)果是1000var o = "100" - "10"; // 結(jié)果是90var p = "10" + "20"; // 結(jié)果是1020var q = 10 + "20"; // 結(jié)果是1020var r = "10" + 20; // 結(jié)果是1020var s = 10 + 20 + "30"; // 結(jié)果是3030var t = 10 + "20" + 30; // 結(jié)果是102030var u = isNaN("111"); // 返回falsevar v = isNaN("111a"); // 返回truevar w = isNaN(NaN); // 返回true, 因?yàn)镹aN不是數(shù)var x = typeof(NaN); // 返回numbervar y = isFinite(111); // 返回truevar z = isFinite("111"); // 返回truevar A = isFinite("111a"); // 返回falsevar B = isFinite(Infinity); // 返回false, 因?yàn)镮nfinity是正無(wú)窮大var C = isFinite(-Infinity); // 返回false, 因?yàn)?Infinity是負(fù)無(wú)窮大var D = isFinite(NaN); // 返回false, 因?yàn)镹aN非數(shù)字var E = typeof(Infinity); // 返回numbervar F = typeof(-Infinity); // 返回numbervar G = isNaN(Infinity); // 返回false, 因?yàn)镮nfinity是正無(wú)窮數(shù)var H = isNaN(-Infinity); // 返回false, 因?yàn)?Infinity是負(fù)無(wú)窮數(shù)var I = 011; // 八進(jìn)制數(shù), E將是9var J = 0xFF; // 十六進(jìn)制數(shù), F將是255document.write('a = ' + a + '<br />');document.write('b = ' + b + '<br />');document.write('c = ' + c + '<br />');document.write('d = ' + d + '<br />');document.write('e = ' + e + '<br />');document.write('f = ' + f + '<br />');document.write('g = ' + g + '<br />');document.write('h = ' + h + '<br />');document.write('i = ' + i + '<br />');document.write('j = ' + j + '<br />');document.write('k = ' + k + '<br />');document.write('l = ' + l + '<br />');document.write('"100" / "10" = ' + m + '<br />');document.write('"100" * "10" = ' + n + '<br />');document.write('"100" - "10" = ' + o + '<br />');document.write('"10" + "20" = ' + p + '<br />');document.write('10 + "20" = ' + q + '<br />');document.write('"10" + 20 = ' + r + '<br />');document.write('10 + 20 + "30" = ' + s + '<br />');document.write('10 + "20" + 30 = ' + t + '<br />');document.write('isNaN("111") = ' + u + '<br />');document.write('isNaN("111a") = ' + v + '<br />');document.write('isNaN(NaN) = ' + w + '<br />');document.write('typeof(NaN) = ' + x + '<br />');document.write('isFinite(111) = ' + y + '<br />');document.write('isFinite("111") = ' + z + '<br />');document.write('isFinite("111a") = ' + A + '<br />');document.write('isFinite(Infinity) = ' + B + '<br />');document.write('isFinite(-Infinity) = ' + C + '<br />');document.write('isFinite(NaN) = ' + D + '<br />');document.write('typeof(Infinity) = ' + E + '<br />');document.write('typeof(-Infinity) = ' + F + '<br />');document.write('isNaN(Infinity) = ' + G + '<br />');document.write('isNaN(-Infinity) = ' + H + '<br />');document.write('I = ' + I + '<br />');document.write('J = ' + J + '<br />');</script></body> </html>

11.2. 效果圖

總結(jié)

以上是生活随笔為你收集整理的022_JavaScript数字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。