Angka JavaScript

JavaScript hanya mempunyai satu jenis bilangan.

Boleh mengisi titik desimal atau tidak semasa menulis bilangan.

JavaScript Bilangan

Penulisan nilai JavaScript dapat berupa titik dengan titik, ataupun tanpa titik

实例

var x = 3.14;    // Nombor dengan titik
var y = 3;       // Nombor tanpa titik

亲自试一试

Bilangan yang sangat besar atau sangat kecil dapat ditulis dalam bentuk bilangan ilmiah:

实例

var x = 123e5;    // 12300000
var y = 123e-5;   // 0.00123

亲自试一试

Nilai JavaScript selalu adalah bilangan floating-point 64 bit

Beberapa lainnya berbeda dengan banyak bahasa pemrograman lain, JavaScript tidak mendefinisikan tipe bilangan yang berbeda, seperti integer, pendek, panjang, floating-point, dll.

Nilai JavaScript selalu disimpan dalam bilangan floating-point double precision, menurut standar internasional IEEE 754.

Format ini menggunakan 64 bit untuk menyimpan nilai, di mana 0 hingga 51 menyimpan angka (bentuk), 52 hingga 62 menyimpan indeks, dan 63 bit menyimpan simbol:

Nilai (dikenal sebagai Fraksi/Eksponen) Indeks Simbol
52 bits(0 - 51) 11 bits (52 - 62) 1 bit (63)

Kecerdasan

Bilangan bulat (tanpa ekspresi atau penomoran bilangan ilmiah) akan disesuaikan hingga 15 digit.

实例

var x = 999999999999999;   // x akan adalah 999999999999999
var y = 9999999999999999;  // y akan adalah 10000000000000000

亲自试一试

Bilangan desimal maksimum adalah 17 digit, tetapi aritmetika floating-point tidak selalu 100% akurat:

实例

var x = 0.2 + 0.1;         // x akan adalah 0.30000000000000004

亲自试一试

Penggunaan perkalian dan pembagian dapat membantu menyelesaikan masalah di atas:

实例

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x akan adalah 0.3

亲自试一试

Menambahkan nombor dan string

Amaran !!

Penggabungan dan penambahan JavaScript menggunakan operator +.

Nombor digabungkan dengan penambahan. String digabungkan.

Jika anda menambahkan dua nombor, hasilnya akan adalah nombor:

实例

var x = 10;
var y = 20;
var z = x + y;           // z akan adalah 30 (satu nombor)

亲自试一试

Jika anda menambahkan dua string, hasilnya akan adalah gabungan string:

实例

var x = "10";
var y = "20";
var z = x + y; // z akan menjadi 1020 (string)

亲自试一试

Jika anda menambahkan bilangan dan string, hasilnya adalah gabungan string:

实例

var x = 10;
var y = "20";
var z = x + y;           // z akan adalah 1020 (satu string)

亲自试一试

Jika anda menambah string dan nombor, hasilnya akan menjadi pengecairan string:

实例

var x = "10";
var y = 20;
var z = x + y; // z akan menjadi 1020 (string)

亲自试一试

Kesalahan umum adalah menganggap hasil seharusnya adalah 30:

实例

var x = 10;
var y = 20;
var z = "The result is: " + x + y;

亲自试一试

Kesalahan umum adalah menganggap hasil seharusnya adalah 102030:

实例

var x = 10;
var y = 20;
var z = "30";
var result = x + y + z;

亲自试一试

JavaScript akan mengompilasi dari kiri ke kanan.

Kerana x dan y adalah nombor, 10 + 20 akan di tambahkan.

Kerana z adalah string, 30 + "30" akan dicacah.

String Nombor

String JavaScript boleh mempunyai kandungan nombor:

var x = 100; // x adalah nombor
var y = "100"; // y adalah string

Dalam semua operasi nombor, JavaScript akan cuba untuk mengubah string kepada nombor:

Contoh ini akan berjalan seperti berikut:

var x = "100";
var y = "10";
var z = x / y; // z akan menjadi 10

亲自试一试

Contoh ini juga akan berjalan seperti berikut:

var x = "100";
var y = "10";
var z = x * y; // z akan menjadi 1000

亲自试一试

Contoh ini akan berjalan seperti berikut:

var x = "100";
var y = "10";
var z = x - y; // z akan menjadi 90

亲自试一试

walau bagaimanapun, contoh ini tidak akan berjalan seperti contoh sebelumnya:

var x = "100";
var y = "10";
var z = x + y; // z akan bukan 110 (melainkan 10010)

亲自试一试

Dalam contoh terakhir, JavaScript menggunakan operator + untuk pengecairan string.

NaN - Bukan Nombor

NaN adalah kata kerja reserved JavaScript, menunjukkan angka tersebut bukan nombor sah.

Percubaan bagi fungsian bagi dengan string bukan nombor akan memberikan NaN (Not a Number):

实例

var x = 100 / "Apple"; // x akan menjadi NaN (Not a Number)

亲自试一试

walau bagaimanapun, jika string mengandungi angka, hasilnya akan menjadi nombor:

实例

var x = 100 / "10"; // x akan menjadi 10

亲自试一试

Anda boleh gunakan fungsi JavaScript global: isNaN() untuk menentukan nilai apakah nombor:

实例

var x = 100 / "Apple";
isNaN(x); // Pulang kembali true, kerana x bukan nombor

亲自试一试

Harap berhati-hati NaN.Jika anda menggunakan NaNJadi hasilnya juga akan menjadi NaN:

实例

var x = NaN;
var y = 5;
var z = x + y;         // z akan menjadi NaN

亲自试一试

Hasilnya mungkin adalah gabungan:

实例

var x = NaN;
var y = "5";
var z = x + y;         // z akan menjadi NaN5

亲自试一试

NaN Adalah bilangan,typeof NaN Pulang number:

实例

typeof NaN;             // Pulang "number"

亲自试一试

Infinity

Infinity atau -InfinityAdalah nilai yang diembalikan oleh JavaScript saat menghitung bilangan melebihi kisaran bilangan yang mungkin.

实例

var myNumber = 2;
while (myNumber != Infinity) {          // Melaksanakan sehingga Infinity
    myNumber = myNumber * myNumber;
}

亲自试一试

Pembagian 0 (nol) juga akan menghasilkan Infinity:

实例

var x =  2 / 0;          // x akan menjadi Infinity
var y = -2 / 0;          // y akan menjadi -Infinity

亲自试一试

Infinity Bilangan:typeOf Infinity Pulang number.

实例

typeof Infinity;        // Pulang "number"

亲自试一试

heksadesimal

JavaScript akan menggambarkan yang diawali dengan 0x nilai konstanta diartikan dalam heksadesimal.

实例

var x = 0xFF;             // x akan menjadi 255.

亲自试一试

Jangan tulis nombor dengan nol awal (seperti 07).

Beberapa versi JavaScript akan menggambarkan bilangan dengan nol awal sebagai oktal.

Secara lalai, Javascript menunjukkan bilangan dalam format desimal.

Tetapi anda boleh gunakan toString() Method mengeluarkan bilangan dalam format heksadesimal, oktal atau biner.

实例

var myNumber = 128;
myNumber.toString(16);     // Pulang 80
myNumber.toString(8);      // Pulang 200
myNumber.toString(2);      // Pulang 10000000

亲自试一试

Angka boleh jadi objek

Biasanya angka JavaScript dicipta melalui nilai asal: var x = 123

但是也可以通过关键词 new 定义为对象:var y = new Number(123)

实例

var x = 123;
var y = new Number(123);
// typeof x 返回 number
// typeof y 返回 object

亲自试一试

请不要创建数值对象。这样会拖慢执行速度。

new 关键词使代码复杂化,并产生某些无法预料的结果:

当使用 == 相等运算符时,相等的数看上去相等:

实例

var x = 500;             
var y = new Number(500);
// (x == y) 为 true,因为 x 和 y 有相等的值

亲自试一试

当使用 === 相等运算符后,相等的数变为不相等,因为 === 运算符需要类型和值同时相等。

实例

var x = 500;             
var y = new Number(500);
// (x === y) 为 false,因为 x 和 y 的类型不同

亲自试一试

甚至更糟。对象无法进行对比:

实例

var x = new Number(500);             
var y = new Number(500);
// (x == y) 为 false,因为对象无法比较

亲自试一试

JavaScript 对象无法进行比较。