var a=true;
console.log(a);//返回true
console.log(typeof a);//返回boolean
console.log(typeof(typeof a));//返回"string"
Pada asasnya jenis a 1 : 2 boleh ditulis seperti ini:
"boolean" ? 1:2
Dan ungkapan ternary ini memanggil Boolean() untuk menukar jenis rentetan, iaitu: Boolean("boolean") ====>true Jadi pulangannya ialah 1. Anda boleh cuba menetapkan a kepada false, dan nilai pulangan masih akan menjadi 1:
Mengambil contoh anda, pengendali ternari, apabila jenis a adalah benar, mengembalikan 1, dan apabila jenis a adalah palsu, ia mengembalikan 2. 100 + a yang pertama; telah jenis ditukar, jadi 100 + a = 101, jadi keputusan juga mengembalikan 1
1. Kerana
typeof
mempunyai keutamaan yang lebih tinggi2. Atau kerana pengendali penambahan mempunyai keutamaan yang lebih tinggi
Pada asasnya jenis a 1 : 2 boleh ditulis seperti ini:
Dan ungkapan ternary ini memanggil Boolean() untuk menukar jenis rentetan, iaitu:
Boolean("boolean") ====>true
Jadi pulangannya ialah 1.
Anda boleh cuba menetapkan a kepada false, dan nilai pulangan masih akan menjadi 1:
Pernyataan ini disusun seperti ini
(typeof a)? 1 : 2
Apabila disusun, ia telah ditukar kepada borang ini, dan inilah hasilnya. Operator ternary
Tiada apa yang salah
Mengambil contoh anda,
pengendali ternari, apabila jenis a adalah benar, mengembalikan 1, dan apabila
jenis a adalah palsu, ia mengembalikan 2.
100 + a yang pertama; telah jenis ditukar, jadi 100 + a = 101,
jadi keputusan juga mengembalikan 1