Apa hasil dari alert yang di-OR-kan?
Apa output kode di bawah?
alert( alert(1) || 2 || alert(3) );
Jawabannya: pertama 1
, lalu 2
.
alert( alert(1) || 2 || alert(3) );
Panggilan alert
tak mengembalikan nilai. Atau, dengan kata lain, ia mengembalikan undefined
.
- Pertama OR
||
mengevaluasi operand kirialert(1)
. Ia menampilkan pesan pertama dengan1
. alert
mengembalikanundefined
, jadi OR jalan ke operand kedua mencari nilai truthy.- Operand kedua
2
truthy, jadi eksekusinya disela,2
dikembalikan dan ditampilkan oleh alert terluar.
Tak akan ada 3
, karena evaluasinya tidak mencapai alert(3)
.