Mengapa Operator Logik JavaScript Kadang-kadang Mengembalikan Objek Daripada Boolean?

Linda Hamilton
Lepaskan: 2024-11-18 02:42:02
asal
974 orang telah melayarinya

Why Do JavaScript Logical Operators Sometimes Return Objects Instead of Booleans?

Operator Logik dalam JavaScript: Memahami Keputusan Bukan Boolean

Tidak seperti pengendali matematik, yang sentiasa mengembalikan nilai berangka, pengendali logik (&& dan | |) dalam JavaScript kadangkala boleh mengembalikan objek dan bukannya boolean. Ini boleh menjadi berlawanan dengan intuisi, terutamanya apabila cuba menggunakannya untuk semakan bersyarat.

Mengapa Objek Dipulangkan

The || dan && operator ialah operator litar pintas logik, bermakna mereka menilai operan mereka dari kiri ke kanan dan mengembalikan nilai logik pertama yang ditentukan sepenuhnya. Dalam JavaScript, nilai ini boleh sama ada benar atau palsu, tetapi ia juga boleh menjadi objek.

Memahami Logik Bersyarat

Dalam ungkapan X || Y, X dinilai dahulu dan ditafsirkan sebagai nilai boolean. Jika X benar, ia dikembalikan serta-merta, dan Y tidak dinilai. Ini kerana ungkapan tersebut telah pun ditentukan sebagai benar.

Jika X adalah palsu, Y kemudiannya dinilai dan nilai booleannya dikembalikan.

Begitu juga, && berhenti menilai jika argumen pertama adalah palsu.

Tipu dengan "Salah"

Yang pertama titik kekeliruan timbul kerana apabila ungkapan dinilai sebagai "benar", ungkapan itu sendiri dikembalikan. Inilah sebabnya mengapa anda mungkin melihat nilai sebenar dikembalikan daripada ungkapan logik.

Helah dengan Null

Titik kekeliruan kedua berpunca daripada gelagat JavaScript dalam versi yang berbeza. Pada mulanya, ia akan mengembalikan palsu untuk ungkapan "palsu", tetapi dari versi 1.2 dan seterusnya, ia mengembalikan nilai sebenar ungkapan itu.

Contoh

Untuk menggambarkan:

var _ = (obj.fn && obj.fn()) || obj._ || (obj._ = {}); // Returns obj.fn() if defined, otherwise obj._
var _ = obj && obj._; // Returns obj._ if obj is true, otherwise obj
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Operator Logik JavaScript Kadang-kadang Mengembalikan Objek Daripada Boolean?. 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