Rumah > hujung hadapan web > tutorial js > Panduan Lengkap untuk Menaip Penukaran dalam JavaScript: Paksaan Tersirat vs Eksplisit

Panduan Lengkap untuk Menaip Penukaran dalam JavaScript: Paksaan Tersirat vs Eksplisit

Barbara Streisand
Lepaskan: 2024-12-31 07:27:10
asal
823 orang telah melayarinya

A Complete Guide to Type Conversion in JavaScript: Implicit vs Explicit Coercion

*### Penukaran Jenis dalam JavaScript
*

Penukaran jenis dalam JavaScript merujuk kepada proses menukar nilai daripada satu jenis data kepada yang lain. JavaScript ialah bahasa yang ditaip secara dinamik, bermakna pembolehubah tidak terikat pada jenis data tertentu dan ia boleh ditukar secara automatik atau eksplisit antara jenis yang berbeza.

### Jenis Penukaran Jenis

Terdapat dua jenis penukaran jenis dalam JavaScript:

1. **Penukaran Jenis Tersirat (Paksaan Jenis)

  1. Penukaran Jenis Eksplisit**

### 1. **Penukaran Jenis Tersirat (Paksaan Jenis)**

Penukaran jenis tersirat, juga dikenali sebagai paksaan jenis, berlaku secara automatik oleh JavaScript apabila melakukan operasi antara jenis data yang berbeza. JavaScript secara automatik menukar satu jenis kepada yang lain apabila diperlukan.

#### Contoh Penukaran Jenis Tersirat:

  • Penggabungan Rentetan Apabila anda menambah nombor pada rentetan, JavaScript secara automatik menukar nombor itu menjadi rentetan.
  let result = '5' + 1;
  console.log(result);  // Output: '51' (String)
Salin selepas log masuk
Salin selepas log masuk

-** Penukaran Boolean **
Apabila nilai bukan boolean digunakan dalam konteks boolean, JavaScript menukarnya kepada benar atau palsu.

  let isValid = 'hello' == true;  // Implicit coercion
  console.log(isValid);  // Output: true
Salin selepas log masuk
Salin selepas log masuk
  • ***Perbandingan Kesaksamaan* ** Apabila membandingkan jenis yang berbeza menggunakan ==, JavaScript melakukan paksaan jenis untuk membuat perbandingan berfungsi.
  let result = '5' == 5;
  console.log(result);  // Output: true (due to implicit coercion)
Salin selepas log masuk
Salin selepas log masuk

** 2. Penukaran Jenis Eksplisit**

Penukaran jenis eksplisit, juga dikenali sebagai penghantaran jenis, ialah apabila anda menukar satu jenis kepada jenis lain secara manual menggunakan kaedah atau fungsi terbina dalam. JavaScript menyediakan beberapa fungsi untuk menukar antara jenis.

Contoh Penukaran Jenis Eksplisit:

- **Menukar kepada Rentetan **
Anda boleh menggunakan fungsi String() atau kaedah .toString() untuk menukar nilai kepada rentetan.

  let num = 123;
  let str = String(num);  // Using String()
  console.log(str);  // Output: '123'

  let bool = true;
  let strBool = bool.toString();  // Using .toString()
  console.log(strBool);  // Output: 'true'
Salin selepas log masuk
Salin selepas log masuk

- **Menukar kepada Nombor **
Anda boleh menggunakan fungsi Number(), operator unary atau parseInt()/parseFloat() untuk menukar nilai kepada nombor.

  let str = '123';
  let num = Number(str);
  console.log(num);  // Output: 123

  let bool = true;
  let numBool = +bool;  // Unary plus operator
  console.log(numBool);  // Output: 1

  let floatStr = '12.34';
  let floatNum = parseFloat(floatStr);
  console.log(floatNum);  // Output: 12.34
Salin selepas log masuk
Salin selepas log masuk

- **Menukar kepada Boolean **
Anda boleh menukar nilai kepada boolean menggunakan fungsi Boolean().

  let num = 0;
  let bool = Boolean(num);  // Converts to false
  console.log(bool);  // Output: false

  let str = 'hello';
  let boolStr = Boolean(str);  // Converts to true
  console.log(boolStr);  // Output: true
Salin selepas log masuk
Salin selepas log masuk

### 3. **Tingkah Laku Paksaan Jenis Terperinci**

Tingkah laku paksaan JavaScript boleh mengelirukan, jadi mari kita lihat cara operasi yang berbeza menukar jenis.

  • Tambahan ( ) Operator Jika salah satu operan ialah rentetan, JavaScript menukar operan lain kepada rentetan dan melakukan penggabungan rentetan.
  let result = '5' + 1;
  console.log(result);  // Output: '51' (String)
Salin selepas log masuk
Salin selepas log masuk
  • Operator Tolak (-), Pendaraban (*), dan Pembahagian (/) JavaScript cuba menukar kedua-dua operan kepada nombor sebelum melakukan operasi.
  let isValid = 'hello' == true;  // Implicit coercion
  console.log(isValid);  // Output: true
Salin selepas log masuk
Salin selepas log masuk
  • Kesaksamaan (==) dan Kesaksamaan Tegas (===) Operator
    • == menyemak kesaksamaan dengan paksaan jenis.
    • === menyemak kesaksamaan tanpa paksaan jenis (kesamaan ketat).
  let result = '5' == 5;
  console.log(result);  // Output: true (due to implicit coercion)
Salin selepas log masuk
Salin selepas log masuk
  • Operator Logik Operator logik seperti &&, ||, dan ! paksa operan kepada nilai boolean.
  let num = 123;
  let str = String(num);  // Using String()
  console.log(str);  // Output: '123'

  let bool = true;
  let strBool = bool.toString();  // Using .toString()
  console.log(strBool);  // Output: 'true'
Salin selepas log masuk
Salin selepas log masuk

### 4. **Nilai Palsu dan Benar**

Dalam JavaScript, nilai tertentu dianggap palsu atau benar apabila dipaksa kepada boolean:

  • Nilai Palsu: palsu, 0, "" (rentetan kosong), null, undefined, NaN.
  • Nilai Sejati: Semua nilai yang tidak palsu, termasuk [], {}, 1, "hello", dsb.

Contoh:

  let str = '123';
  let num = Number(str);
  console.log(num);  // Output: 123

  let bool = true;
  let numBool = +bool;  // Unary plus operator
  console.log(numBool);  // Output: 1

  let floatStr = '12.34';
  let floatNum = parseFloat(floatStr);
  console.log(floatNum);  // Output: 12.34
Salin selepas log masuk
Salin selepas log masuk

### 5. **Mengendalikan Null dan Undefined**

  • Null to Number null bertukar kepada 0 apabila dipaksa kepada nombor.
  let num = 0;
  let bool = Boolean(num);  // Converts to false
  console.log(bool);  // Output: false

  let str = 'hello';
  let boolStr = Boolean(str);  // Converts to true
  console.log(boolStr);  // Output: true
Salin selepas log masuk
Salin selepas log masuk
  • Tidak ditentukan kepada Nombor undefined menukar kepada NaN apabila dipaksa kepada nombor.
  let result = '5' + 1;
  console.log(result);  // Output: '51'
Salin selepas log masuk
  • Null to Boolean null dipaksa kepada palsu dalam konteks boolean.
  let result = '5' - 1;
  console.log(result);  // Output: 4 (Number)

  let resultMul = '5' * 2;
  console.log(resultMul);  // Output: 10 (Number)
Salin selepas log masuk

### 6. **Kaedah toString()**

Setiap objek JavaScript mempunyai akses kepada kaedah toString(), yang menukar objek kepada rentetan. Sebagai contoh, apabila anda memanggil keString() pada nombor, ia mengembalikan perwakilan rentetan nombor tersebut.

Contoh:

  let result = '5' == 5;
  console.log(result);  // Output: true (coercion happens)

  let strictResult = '5' === 5;
  console.log(strictResult);  // Output: false (no coercion)
Salin selepas log masuk

Hai, saya Abhay Singh Kathayat!
Saya seorang pembangun timbunan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna.
Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: kaashshorts28@gmail.com.

Atas ialah kandungan terperinci Panduan Lengkap untuk Menaip Penukaran dalam JavaScript: Paksaan Tersirat vs Eksplisit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan