Rumah > hujung hadapan web > tutorial js > 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
Lepaskan: 2024-10-30 07:35:27
asal
306 orang telah melayarinya

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):
// ...
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan