Rumah >hujung hadapan web >tutorial js >parseInt() vs. Number(): Bagaimanakah Mereka Berbeza dalam Penukaran Rentetan kepada Nombor?

parseInt() vs. Number(): Bagaimanakah Mereka Berbeza dalam Penukaran Rentetan kepada Nombor?

Patricia Arquette
Patricia Arquetteasal
2024-11-19 08:47:03904semak imbas

parseInt() vs. Number(): How Do They Differ in String-to-Number Conversion?

Memahami Nuansa parseInt() dan Number() dalam Penukaran Rentetan ke Nombor

Apabila berurusan dengan rentetan ke nombor penukaran dalam JavaScript, adalah penting untuk memahami perbezaan antara parseInt() dan Number(). Kedua-dua kaedah ini mempamerkan gelagat yang berbeza dalam mengendalikan input rentetan.

Perbezaan Semantik: Penghuraian lwn. Penukaran Jenis

parseInt() melaksanakan penghuraian, yang bermaksud ia mentafsir sebahagian daripada rentetan sebagai nombor, sambil mengabaikan sebarang aksara mengekor yang tidak sesuai dengan sistem angka yang ditetapkan. Number(), sebaliknya, melakukan penukaran jenis, cuba menukar keseluruhan rentetan kepada nilai angka.

Contoh:

// Parsing
parseInt("20px");       // 20
parseInt("10100", 2);   // 20
parseInt("2e1");        // 2

// Type conversion
Number("20px");       // NaN
Number("2e1");        // 20 (exponential notation)

Aksara Mengekor dan Oktal Tersirat

parseInt() mengabaikan aksara mengekor yang tidak sepadan dengan digit berangka dalam pangkalan yang ditentukan. Walau bagaimanapun, pembina Number() tidak mengesan perlapanan tersirat (nombor yang diawali dengan 0, mewakili sistem angka perlapanan). Tatatanda perlapanan eksplisit (0o) diiktiraf oleh Number().

// Implicit octal detection
Number("010");         // 10
Number("0o10")         // 8

// Parsed as octal by default
parseInt("010");       // 8
parseInt("010", 10);   // 10 (force decimal radix)

Notasi Heksadesimal dan Operator Tambah Unary

Kedua-dua parseInt() dan Number() boleh mengendalikan tatatanda heksadesimal, nombor yang diwakili dengan awalan 0x terkemuka. Selain itu, Operator Unary Plus ( ) juga boleh digunakan untuk melakukan penukaran jenis angka, bersamaan dengan menggunakan pembina Number() .

// Hexadecimal notation
Number("0xF");   // 15
parseInt("0xF"); //15

// Unary Plus Operator
+"2e1";   // 20
+"0xF";   // 15
+"010";   // 10

Dengan memahami ciri khusus parseInt() dan Number(), pembangun boleh membuat keputusan termaklum apabila menukar rentetan kepada nombor dalam JavaScript, memastikan hasil yang tepat dan boleh dipercayai.

Atas ialah kandungan terperinci parseInt() vs. Number(): Bagaimanakah Mereka Berbeza dalam Penukaran Rentetan kepada Nombor?. 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