Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah Operator Ternary JavaScript Berkelakuan Berbeza Apabila Digunakan dengan Operator ` =`?

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

Linda Hamilton
Linda Hamiltonasal
2024-10-29 22:41:03195semak imbas

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'

Seseorang mungkin menganggap bahawa kod tersebut beroperasi seperti berikut:

h.className = h.className + h.className ? ' error' : 'error'

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

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!

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