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
Barbara Streisandasal
2024-12-31 07:27:10847semak imbas

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)

-** 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
  • ***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)

** 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'

- **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

- **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

### 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)
  • 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
  • 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)
  • 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'

### 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

### 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
  • Tidak ditentukan kepada Nombor undefined menukar kepada NaN apabila dipaksa kepada nombor.
  let result = '5' + 1;
  console.log(result);  // Output: '51'
  • 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)

### 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)

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!

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