亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

JavaScript菜鳥(niǎo)教程

JavaScript 對(duì)象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥(niǎo)教程

JavaScript 參考手冊(cè)

JavaScript 數(shù)值(Number)

JavaScript只有一種數(shù)字類型,沒(méi)有整數(shù)和浮點(diǎn)數(shù)的單獨(dú)指定。

因此,數(shù)字可以用JavaScript編寫(xiě),帶或不帶小數(shù)。

var a = 25; // 無(wú)小數(shù)點(diǎn)
var b = 80.05;  // 有小數(shù)點(diǎn)
測(cè)試看看?/?

在以上兩種情況下,數(shù)據(jù)類型都是一個(gè)數(shù)字,并且無(wú)論該數(shù)字是否帶有小數(shù)點(diǎn)都相同。

可以在JavaScript中使用科學(xué)的指數(shù)表示法來(lái)縮寫(xiě)非常大或很小的數(shù)字,如以下示例所示:

let num1 = 957e8; // 95700000000
let num2 = 957e-8;// 0.00000957
測(cè)試看看?/?

JavaScript中的數(shù)字被認(rèn)為是準(zhǔn)確的,最多15位數(shù)字。這意味著數(shù)字將在到達(dá)第16位后四舍五入:

let num1 = 999999999999999; // 值保持不變 999999999999999
let num2 = 9999999999999999;// 向上舍入到 10000000000000000
測(cè)試看看?/?

數(shù)字的內(nèi)部表示

與其他語(yǔ)言不同,JavaScript不會(huì)定義不同類型的數(shù)字,例如整數(shù),短整數(shù),長(zhǎng)整數(shù),浮點(diǎn)數(shù)等。

JavaScript數(shù)字具有64位精度,這也稱為雙精度。

內(nèi)部表示基于IEEE 754標(biāo)準(zhǔn)。

64位在數(shù)字的符號(hào),指數(shù)和小數(shù)之間分配,如下所示:

標(biāo)識(shí)指數(shù)分?jǐn)?shù)
1 bit11 bit52 bit
Bit 63Bits 62–52Bits 51–0

數(shù)字相加和字符串拼接

從前面的章節(jié)中可以知道,+運(yùn)算符用于數(shù)字相加和字符串拼接。

如果為數(shù)字則數(shù)字相加。為字符串則將字符串串聯(lián)起來(lái)。

如果將兩個(gè)數(shù)字相加,則結(jié)果將是一個(gè)數(shù)字:

let x = 50;
let y = 10;
let z = x + y;  // z  = 60 (a number)
測(cè)試看看?/?

如果是兩個(gè)字符串,結(jié)果將是字符串串聯(lián):

let x = "50";
let y = "10";
let z = x + y;  // z  = 5010 (a string)
測(cè)試看看?/?

如果數(shù)字和字符串,結(jié)果將是字符串串聯(lián):

let x = 50;
let y = "10";
let z = x + y;  // z  = 5010 (a string)
測(cè)試看看?/?

如果字符串和數(shù)字,結(jié)果將是字符串串聯(lián):

let x = "50";
let y = 10;
let z = x + y;  // z  = 5010 (a string)
測(cè)試看看?/?

JavaScript從左到右計(jì)算表達(dá)式。不同的序列可以產(chǎn)生不同的結(jié)果。

在下面的示例中,首先將50 + 10相加,因?yàn)閤和y都是數(shù)字,然后將60 +“30”連接起來(lái),因?yàn)閦是字符串:

let x = 50;
let y = 10;
let z = "30";
let sum = x + y + z;  // sum  = 6030 (a string)
測(cè)試看看?/?

一個(gè)常見(jiàn)的錯(cuò)誤,預(yù)期此結(jié)果為60:

let x = 50;
let y = 10;
let z = "The sum is: " + x + y;
測(cè)試看看?/?

您可以使用括號(hào)解決以上問(wèn)題:

let x = 50;
let y = 10;
let z = "The sum is: " + (x + y);
測(cè)試看看?/?

數(shù)字字符串和數(shù)學(xué)表達(dá)式

JavaScript字符串可以包含數(shù)字值。

  let x = 50;  // x 是一個(gè)數(shù)字
  let y = "50";  // y 是一個(gè)字符串

如果字符串包含數(shù)字值,則可以在JavaScript中執(zhí)行數(shù)學(xué)表達(dá)式。

可以執(zhí)行除法:

let x = "50" / "10";  // x  = 5
測(cè)試看看?/?

可以執(zhí)行乘法:

let x = "50" * "10";  // x  = 500
測(cè)試看看?/?

可以執(zhí)行冪運(yùn)算:

let x = "5" ** "3";  // x  = 125
測(cè)試看看?/?

可以執(zhí)行增量:

let x = "50";
x++; // x  = 51
測(cè)試看看?/?

可以執(zhí)行減法:

let x = "50" - "10";  // x  = 40
測(cè)試看看?/?

無(wú)法執(zhí)行加法:

let x = "50" + "10";  // x  = 5010
測(cè)試看看?/?

注意:如果添加兩個(gè)字符串,結(jié)果將是字符串串聯(lián)。

JavaScript NaN-非法數(shù)字

在JavaScript NaN中,保留字表示數(shù)字不是合法數(shù)字。

如果您嘗試對(duì)數(shù)字和非數(shù)字值執(zhí)行數(shù)學(xué)運(yùn)算,NaN將返回。

var x = 50 / "(cainiaoplus.com)";  // x  = NaN (Not a Number)
測(cè)試看看?/?

但是,如果字符串包含數(shù)字值,則可以使用JavaScript執(zhí)行數(shù)學(xué)表達(dá)式:

var x = 50 / "10";  // x  = 5
測(cè)試看看?/?

您可以使用全局JavaScript isNaN()函數(shù)來(lái)確定值是否為數(shù)字:

var x = 50 / "(cainiaoplus.com)";
isNaN(x);// 返回true,因?yàn)閤不是一個(gè)數(shù)字
測(cè)試看看?/?

將值分配給NaN操作中使用的變量NaN時(shí),即使另一個(gè)操作數(shù)是合法數(shù)字,也將導(dǎo)致的值:

var x = NaN;
var y = 27;
var z = x + y;  // z  = NaN
測(cè)試看看?/?

NaN是一個(gè)數(shù)字;typeof NaN返回number:

typeof NaN;   // will return "number"
測(cè)試看看?/?

JavaScript 無(wú)窮

Infinity(正無(wú)窮)或-Infinity(負(fù)無(wú)窮)如果您計(jì)算的數(shù)字超出JavaScript中可用的最大數(shù)字,則將返回。

對(duì)于未定義的值,也將發(fā)生這些情況,例如除以零時(shí):

var x = 5 / 0;   // 將返回?zé)o窮
var y = -5 / 0;  // 將返回負(fù)無(wú)窮
測(cè)試看看?/?

用技術(shù)術(shù)語(yǔ)來(lái)說(shuō),Infinity(正無(wú)窮)當(dāng)數(shù)字超過(guò)number時(shí)將顯示1.797693134862315E+308,它表示JavaScript中的上限。

同樣,-Infinity(負(fù)無(wú)窮)當(dāng)數(shù)字超出的下限時(shí)將顯示-1.797693134862316E+308。

Infinity是一個(gè)數(shù)字:typeof Infinity返回number:

typeof Infinity;   // will return "number"
測(cè)試看看?/?

該數(shù)字Infinity也可以在循環(huán)中使用:

var num = 5;
while (num != Infinity) { 
// 這里的代碼將執(zhí)行到num = ∞
}
測(cè)試看看?/?

JavaScript 基數(shù)

默認(rèn)情況下,JavaScript將數(shù)字顯示為以10基數(shù)的小數(shù)。

數(shù)字也可以用十六進(jìn)制(基數(shù)16),二進(jìn)制(基數(shù)2)和八進(jìn)制(基數(shù)8)表示。

十六進(jìn)制數(shù)字的前綴為0x:

var x = 0xFF;  // x  = 255
測(cè)試看看?/?

二進(jìn)制數(shù)字的前綴為0b:

var x = 0b1111;// x  = 15
測(cè)試看看?/?

切勿寫(xiě)一個(gè)以零開(kāi)頭的數(shù)字(例如0121)。如果將數(shù)字寫(xiě)成前導(dǎo)零,則JavaScript會(huì)將數(shù)字解釋為八進(jìn)制:

var x = 016;
測(cè)試看看?/?

您可以使用該toString()方法從2到36的數(shù)字返回?cái)?shù)字。

十六進(jìn)制為基數(shù)16,十進(jìn)制為基數(shù)10,八進(jìn)制為基數(shù)8,二進(jìn)制為基數(shù)2。

var num = 255;
num.toString(10);  // returns 255
num.toString(16);  // returns ff
num.toString(8);   // returns 377
num.toString(2);   // returns 11111111
測(cè)試看看?/?

數(shù)字基元和數(shù)字對(duì)象

通常,JavaScript數(shù)字是從文字創(chuàng)建的原始值:

var num = 50;

但是,也可以使用 new關(guān)鍵字將數(shù)字定義為對(duì)象:

var num = new Number(50);

為了測(cè)試兩者之間的差異,我們將初始化一個(gè)數(shù)字基元和一個(gè)數(shù)字對(duì)象。

var num1 = 50;
var num2 = new Number(50);

typeof num1// returns number
typeof num2// returns object
測(cè)試看看?/?

注意:請(qǐng)勿將數(shù)字創(chuàng)建為對(duì)象。這會(huì)降低執(zhí)行速度,并會(huì)產(chǎn)生一些意外的結(jié)果。

使用==運(yùn)算符時(shí),數(shù)字等于:

var num1 = 50;
var num2 = new Number(50);

document.write(num1 == num2); // 返回true,因?yàn)閚um1和num2具有相等的值
測(cè)試看看?/?

使用===運(yùn)算符時(shí),相等的數(shù)字不相等,因?yàn)?==運(yùn)算符期望值和類型都相等:

var num1 = 50;
var num2 = new Number(50);

document.write(num1 === num2); // 返回false,因?yàn)閚um1和num2具有不同的類型
測(cè)試看看?/?

對(duì)象無(wú)法比較:

var num1 = new Number(50);
var num2 = new Number(50);

document.write(num1 == num2); // 返回false,因?yàn)閚um1和num2是不同的對(duì)象
document.write(num1 === num2); // 返回false,因?yàn)閚um1和num2是不同的對(duì)象
測(cè)試看看?/?

注意(==)和(===)之間的區(qū)別。比較兩個(gè)JavaScript對(duì)象將始終返回false。