Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Ungkapan dalam Pernyataan Kes Suis Tidak Berfungsi seperti yang Dijangkakan dalam JavaScript?

Mengapa Ungkapan dalam Pernyataan Kes Suis Tidak Berfungsi seperti yang Dijangkakan dalam JavaScript?

DDD
DDDasal
2024-10-30 07:35:27190semak imbas

Why Do Expressions in Switch Case Statements Not Work as Expected in JavaScript?

Penilaian Ungkapan dalam Pernyataan Kes Suis

Dalam JavaScript, pernyataan suis menilai satu ungkapan terhadap satu siri ungkapan malar. Walau bagaimanapun, percubaan untuk menggunakan ungkapan dalam klausa kes boleh mengakibatkan kelakuan yang tidak dijangka, seperti yang ditunjukkan dalam coretan kod yang disediakan.

Matlamatnya adalah untuk menggunakan penyata suis untuk menentukan ganjaran berdasarkan nilai pembolehubah amaun . Penilaian ungkapan dicuba, seperti yang dilihat dalam klausa kes:

<code class="javascript">case (amount >= 7500 && amount < 10000):
// ...
case (amount >= 10000 && amount < 15000):
// ...

Malangnya, ungkapan ini menilai kepada boolean (benar atau palsu) dan bukannya sepadan dengan nilai berangka amaun. Akibatnya, pernyataan suis tidak akan sekali-kali memasuki mana-mana kes.

Untuk menangani isu ini, satu penyelesaian yang mungkin adalah menggunakan ungkapan sebenar sebagai nilai kes dan menilai ungkapan di dalam klausa kes, seperti ini :

<code class="javascript">switch (true) {
  case (amount >= 7500 && amount < 10000):
    // ...
    break;
  case (amount >= 10000 && amount < 15000):
    // ...
    break;
}</code>

Pendekatan ini berfungsi kerana nilai kes kini ialah boolean true dan ungkapan dalam klausa kes menilai kepada nilai boolean.

Atas ialah kandungan terperinci Mengapa Ungkapan dalam Pernyataan Kes Suis Tidak Berfungsi seperti yang Dijangkakan dalam JavaScript?. 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