Penjelasan terperinci tentang sifat dan kaedah objek Nombor bagi kemahiran JavaScript native objects_javascript

WBOY
Lepaskan: 2016-05-16 16:09:35
asal
1743 orang telah melayarinya

Sintaks untuk mencipta objek Nombor:

Salin kod Kod adalah seperti berikut:

var myNum = Nombor baharu(nilai);
var myNum = Nombor(nilai);

Apabila Number() digunakan sebagai pembina dengan operator baru, ia mengembalikan objek Number yang baru dibuat. Jika anda tidak menggunakan operator baharu dan memanggil Number() sebagai fungsi, ia akan menukar hujahnya kepada nombor primitif dan mengembalikan nilai ini (atau NaN jika penukaran gagal).

MAX_VALUE

Atribut MAX_VALUE ialah nombor terbesar yang boleh diwakili dalam JavaScript. Nilai anggarannya ialah 1.7976931348623157 x 10308. Nombor negatif terbesar ialah -MAX_VALUE.

Nombor yang lebih besar daripada MAX_VALUE ialah Infiniti. MAX_VALUE ialah sifat statik, jadi kaedah panggilan hendaklah Number.MAX_VALUE.

Salin kod Kod adalah seperti berikut:

console.log(Number.MAX_VALUE) //1.7976931348623157e 308

MIN_VALUE

Atribut MIN_VALUE ialah nombor terkecil yang boleh diwakili dalam JavaScript (hampir 0, tetapi bukan negatif). Nilai anggarannya ialah 5 x 10-324 .

Semua nombor yang lebih kecil daripada MIN_VALUE akan ditukar kepada 0.

MIN_VALUE ialah sifat statik, jadi kaedah panggilan hendaklah Nombor.MIN_VALUE.

NaN

Atribut NaN ialah nilai khas yang mewakili nilai bukan angka. Atribut ini digunakan untuk menunjukkan bahawa nilai bukan nombor. Objek Nombor boleh ditetapkan kepada nilai ini untuk menunjukkan bahawa ia bukan nilai angka.

Anda boleh menggunakan fungsi global isNaN() untuk menentukan sama ada nilai ialah nilai NaN.

Nombor.NaN ialah nilai khas yang menunjukkan bahawa hasil operasi aritmetik tertentu (seperti mencari punca kuasa dua nombor negatif) bukan nombor. Kaedah parseInt() dan parseFloat() mengembalikan nilai ini apabila rentetan yang ditentukan tidak boleh dihuraikan. Untuk sesetengah fungsi yang biasanya mengembalikan nombor yang sah, anda juga boleh menggunakan kaedah ini dan menggunakan Number.NaN untuk menunjukkan keadaan ralatnya.

JavaScript mengeluarkan Number.NaN sebagai NaN. Ambil perhatian bahawa NaN sentiasa tidak sama jika dibandingkan dengan nombor lain, termasuk dirinya sendiri. Oleh itu, anda tidak boleh membandingkan dengan Number.NaN untuk menguji sama ada nilai ialah nombor, tetapi hanya boleh memanggil isNaN() untuk perbandingan.

Nota: Pembolehubah global NaN adalah sama dengan Number.NaN ialah atribut tidak boleh dikonfigurasikan dan tidak boleh diubah suai.

Salin kod Kod adalah seperti berikut:

console.log(parseInt("abc")); //NaN
console.log(NaN === NaN); //false
console.log(Number.NaN === NaN); //false
console.log(isNaN(NaN)); //true
console.log(isNaN(Number.NaN)); //true

NEGATIVE_INFINITY

Atribut NEGATIVE_INFINITY mewakili nilai kurang daripada -Number.MAX_VALUE. Nilai ini mewakili infiniti negatif.

JavaScript menggunakan -Infinity apabila memaparkan NEGATIVE_INFINITY. Tingkah laku aritmetik nilai ini sangat serupa dengan infiniti. Contohnya, sebarang nombor yang didarab dengan infiniti masih menghasilkan infiniti, dan sebarang nombor dibahagikan dengan infiniti menghasilkan 0.

-Infiniti adalah sama dengan Nombor.NEGATIVE_INFINITY.

Salin kod Kod adalah seperti berikut:

var x = (-Number.MAX_VALUE) * 2;
var y = Nombor.NEGATIVE_INFINITY;
console.log(x); //-Infinity
console.log(y); //-Infinity
console.log(x===y); //benar

POSITIF_INFINITY

Atribut POSITIVE_INFINITY mewakili nilai yang lebih besar daripada Number.MAX_VALUE. Nilai ini mewakili infiniti positif.

JavaScript menggunakan Infinity apabila memaparkan POSITIVE_INFINITY. Tingkah laku aritmetik nilai ini sangat serupa dengan infiniti. Contohnya, sebarang nombor yang didarab dengan infiniti masih menghasilkan infiniti, dan sebarang nombor dibahagikan dengan infiniti menghasilkan 0.

Infiniti adalah sama dengan Nombor.POSITIVE_INFINITY.

Kaedah isFinite() boleh menentukan sama ada parameter ialah nombor terhingga.

Salin kod Kod adalah seperti berikut:

var x = Nombor.NEGATIVE_INFINITY;
var y = Nombor.POSITIVE_INFINITY;
var z = Infiniti;
var a = "abc";
var b = 123;

console.log(isFinite(x)); //false
console.log(isFinite(y)); //false
console.log(isFinite(z)); //false
console.log(isFinite(a)); //false
console.log(isFinite(b)); //true

kepadaString()

Kaedah toString() menukar objek Nombor kepada rentetan dan mengembalikan hasilnya.

NumberObject.toString(radix)

Parameter radix adalah pilihan. Menentukan asas di mana nombor itu diwakili, menjadikannya integer antara 2 dan 36. Jika parameter ini ditinggalkan, asas 10 adalah disyorkan untuk sentiasa membawa parameter ini untuk mengelakkan salah faham. Sebagai contoh, apabila radix ialah 2, NumberObject ditukar kepada rentetan yang mewakili nilai binari.

Pengecualian TypeError dilemparkan apabila objek yang memanggil kaedah ini bukan Nombor.

Salin kod Kod adalah seperti berikut:

var a = 100;

console.log(a.toString()); //100
console.log(a.toString(10)); //100
console.log(a.toString(2)); //1100100
console.log(a.toString(8)); //144
console.log(a.toString(16)); //64

keLocaleString()

Kaedah toLocaleString() boleh menukar objek Nombor kepada rentetan format tempatan.

Perwakilan rentetan nombor, pelaksanaan ditentukan, diformatkan mengikut spesifikasi tempatan, yang mungkin menjejaskan tanda baca yang digunakan untuk pemisah perpuluhan atau seribu.

Pengecualian TypeError dilemparkan apabila objek yang memanggil kaedah ini bukan Nombor.

Salin kod Kod adalah seperti berikut:

var a = 123456;

console.log(a.toLocaleString()); //123,456
console.log(a.toLocaleString("zh-Hans-CN-u-nu-hanidec")); //Satu, dua, tiga, empat, lima, enam

Untuk lebih banyak parameter, sila rujuk: MDN

untukTetap()

Kaedah toFixed() membundarkan Nombor kepada nombor dengan bilangan tempat perpuluhan yang ditentukan.

NumberObject.toFixed(num)

Nombor parameter diperlukan. Menentukan bilangan tempat perpuluhan, yang merupakan nilai antara 0 dan 20, termasuk sesetengah pelaksanaan boleh menyokong julat nilai yang lebih besar. Jika parameter ini ditinggalkan, 0 akan digunakan sebaliknya.

Mengembalikan perwakilan rentetan NumberObject, yang tidak menggunakan pengiraan eksponen dan mempunyai digit nombor tetap selepas titik perpuluhan. Nombor dibundarkan jika perlu dan dipadatkan dengan sifar supaya ia mencapai panjang yang ditentukan. Jika num lebih besar daripada le 21, kaedah ini hanya memanggil NumberObject.toString(), mengembalikan rentetan dalam tatatanda eksponen.

RangeError dilemparkan apabila num terlalu kecil atau terlalu besar. Nilai antara 0 dan 20 tidak menimbulkan pengecualian ini. Sesetengah pelaksanaan menyokong julat nilai yang lebih besar atau lebih kecil. Pengecualian TypeError dilemparkan apabila objek yang memanggil kaedah ini bukan Nombor.

Salin kod Kod adalah seperti berikut:

var n = 12345.6789;

console.log(n.toFixed());                       //12346
console.log(n.toFixed(2)); //12345.68
console.log(n.toFixed(6)); //12345.678900
console.log((1.23e 20).toFixed(2)); //12300000000000000000.00
console.log((1.23e-10).toFixed(2)); //0.00

Nota: Disebabkan oleh pemprosesan nombor titik terapung, hasil yang dipaparkan oleh kaedah toFixed() bukanlah apa yang dipanggil "pembundaran" atau "pembundaran enam hingga lima menjadi dua kali ganda", tetapi prestasi pembundaran, enam dan lima.

Salin kod Kod adalah seperti berikut:

//Chrome
console.log(( 0.035 ).toFixed( 2 )); //0.04
console.log(( 0.045 ).toFixed( 2 )); //0.04

Adalah disyorkan untuk menulis kaedah anda sendiri untuk menggantikan tingkah laku lalai toFixed(). Anda boleh merujuk kepada: Perbincangan tentang SO:

Salin kod Kod adalah seperti berikut:

Number.prototype.toFixed = function(len){
var temp = Math.pow(10,len);
var s = Math.ceil(ini * temp)
Pulangan s/temp;
}

console.log(( 0.035 ).toFixed( 2 )); //0.04
console.log(( 0.045 ).toFixed( 2 )); //0.05

kepada Eksponen()

Kaedah toExponential() boleh menukar nilai objek kepada notasi eksponen.

NumberObject.toExponential(num)

Nombor parameter adalah pilihan. Menentukan bilangan tempat perpuluhan dalam tatatanda eksponen, yang merupakan nilai antara 0 dan 20, termasuk sesetengah pelaksanaan boleh menyokong julat nilai yang lebih besar. Jika hujah ini ditinggalkan, sebanyak mungkin nombor akan digunakan.

Mengembalikan perwakilan rentetan NumberObject, menggunakan tatatanda eksponen, iaitu, terdapat satu digit sebelum titik perpuluhan dan digit nombor selepas titik perpuluhan. Bahagian perpuluhan nombor akan dibundarkan, berlapik dengan sifar jika perlu, supaya ia mencapai panjang yang ditentukan.

RangeError dilemparkan apabila num terlalu kecil atau terlalu besar. Nilai antara 0 dan 20 tidak menimbulkan pengecualian ini. Sesetengah pelaksanaan menyokong julat nilai yang lebih besar atau lebih kecil. Pengecualian TypeError dilemparkan apabila objek yang memanggil kaedah ini bukan Nombor.

Salin kod Kod adalah seperti berikut:

var num = 10000.1234;

console.log(num.toExponential()); //1.00001234e 4
console.log(num.toExponential(2)); //1.00e 4
console.log(num.toExponential(10)); //1.0000123400e 4

toPrecision()

Kaedah toPrecision() memformatkan nilai berangka ke dalam rentetan dalam bentuk nombor perpuluhan.

NumberObject.toPrecision(num)

Nombor parameter adalah pilihan. Digunakan untuk mengawal ketepatan nombor. Parameter ini ialah nilai antara 1 dan 21 termasuk. Jika parameter ini ditinggalkan, kaedah toString() dipanggil dan bukannya menukar nombor kepada nilai perpuluhan.

Salin kod Kod adalah seperti berikut:

var num = 10000.1234;

console.log(num.toPrecision()); //10000.1234
console.log(num.toPrecision(2)); //1.0e 4
console.log(num.toPrecision(10)); //10000.12340

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan