Mengapakah Operator Ternary JavaScript Berkelakuan Berbeza Apabila Digunakan dengan Operator ` =`?

Linda Hamilton
Lepaskan: 2024-10-29 22:41:03
asal
193 orang telah melayarinya

Why Does JavaScript's Ternary Operator Behave Differently When Used with the ` =` Operator?

Keutamaan Operator Ternary dan Operator JavaScript

Memahami susunan operasi dilakukan dalam kod adalah penting untuk mengelakkan hasil yang tidak dijangka. Dalam JavaScript, operator ternary membentangkan cabaran biasa, terutamanya apabila digabungkan dengan operator lain.

Pertimbangkan coretan kod berikut:

h.className += h.className ? ' error' : 'error'
Salin selepas log masuk

Seseorang mungkin menganggap bahawa kod tersebut beroperasi seperti berikut:

h.className = h.className + h.className ? ' error' : 'error'
Salin selepas log masuk

Walau bagaimanapun, tafsiran ini tidak betul kerana ia mengakibatkan ralat konsol. Untuk memahami kod dengan betul, adalah penting untuk mempertimbangkan keutamaan pengendali.

Jawapan:

Kunci untuk memahami kod adalah untuk menyedari bahawa pengendali lebih diutamakan daripada ternary pengendali. Oleh itu, kod menilai seperti berikut:

h.className = h.className + (h.className ? ' error' : 'error')
Salin selepas log masuk

Dalam kes ini, operator menggabungkan h.className dengan hasil operator ternary. Pengendali ternary menyemak kebenaran h.className dan mengembalikan 'ralat' jika ia benar, atau 'ralat' sebaliknya.

Untuk mengelakkan kekeliruan, adalah dinasihatkan untuk menyatakan secara eksplisit tentang sasaran operasi. Dalam kes ini, menggunakan kurungan untuk mengumpulkan ungkapan memastikan pengendali digunakan pada h.className, seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapakah Operator Ternary JavaScript Berkelakuan Berbeza Apabila Digunakan dengan Operator ` =`?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!