Rumah >hujung hadapan web >tutorial js >Bagaimanakah parseInt() dan Number() berbeza dalam pendekatan mereka kepada penukaran rentetan?

Bagaimanakah parseInt() dan Number() berbeza dalam pendekatan mereka kepada penukaran rentetan?

DDD
DDDasal
2024-11-10 11:28:02961semak imbas

How do parseInt() and Number() differ in their approaches to string conversion?

Membezakan parseInt() daripada Number(): Perbezaan Semantik dan Penukaran Numerik

Soalan:

Bagaimanakah parseInt() dan Number() berbeza dalam pendekatan mereka untuk menukar rentetan ke dalam nilai berangka?

Jawapan:

Walaupun kedua-dua parseInt() dan Number() bertujuan untuk mengekstrak nombor daripada rentetan, mereka mempunyai perbezaan semantik asas.

  • parseInt() Berprestasi Penghuraian:

parseInt() digunakan terutamanya untuk menghurai rentetan, cuba mengekstrak nilai berangka berdasarkan radix yang ditentukan. Radix mewakili asas sistem nombor, seperti perpuluhan (asas 10) atau perenambelasan (asas 16). Secara lalai, parseInt() menganggap jejari perpuluhan.

  • Number() Melaksanakan Penukaran Jenis:

Tidak seperti parseInt(), Number() bertindak sebagai fungsi untuk melakukan penukaran jenis, menukar rentetan yang diberikan kepada nilai angka. Proses penukaran ini mengambil kira pelbagai faktor, termasuk tatatanda eksponen, tatatanda perlapanan dan tatatanda heksadesimal.

Gelagat Penukaran:

  • Radiks Asas :

    • parseInt() mentafsir rentetan dengan mengandaikan radix tertentu. Sebagai contoh, parseInt("10100", 2) akan ditafsirkan sebagai 20 menggunakan radix binari (asas 2).
    • Number() tidak mempunyai keupayaan interpretasi radix yang jelas. Ia mengiktiraf tatatanda perlapanan (cth., "0o10") secara eksplisit, menganggapnya sebagai nombor asas 8.
  • Watak Mengekor:

    • parseInt() mengabaikan aksara mengekor yang tidak sepadan dengan digit yang sah di bawah yang ditentukan radix.
    • Number() mentafsir aksara mengekor sebagai sebahagian daripada nombor.
  • Oktal Tersirat:

    • Nombor() tidak dapat mengesan tatatanda perlapanan tersirat (mis., "010"), tetapi ia boleh mengesan yang eksplisit (cth., "0o10").
    • parseInt() mentafsirkan "010" sebagai nombor perlapanan (asas 8) melainkan dinyatakan sebaliknya dengan jejari alternatif.
  • Heksadesimal Notasi:

    • Kedua-dua parseInt() dan Number() boleh menukar rentetan dalam tatatanda heksadesimal, menggunakan jejari 16 (cth., parseInt("0xF") = 15).
  • Jenis Setara Penukaran:

    • Operator tambah unary ( ) juga boleh digunakan untuk penukaran jenis angka, bertindak serupa dengan Number() sebagai fungsi (cth., "2e1" = 20).

Atas ialah kandungan terperinci Bagaimanakah parseInt() dan Number() berbeza dalam pendekatan mereka kepada penukaran rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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