Rumah  >  Artikel  >  hujung hadapan web  >  Pengenalan terperinci kepada ungkapan litar pintas dalam teknik pengoptimuman Javascript_teknik javascript

Pengenalan terperinci kepada ungkapan litar pintas dalam teknik pengoptimuman Javascript_teknik javascript

WBOY
WBOYasal
2016-05-16 16:07:231097semak imbas

Apakah ungkapan litar pintas?

Ungkapan litar pintas: Sebagai ungkapan operan bagi pengendali "&&" dan "||", apabila ungkapan ini dinilai, selagi keputusan akhir boleh ditentukan sebagai benar atau salah, proses penilaian akan Penamatan, ini dipanggil penilaian litar pintas. Ini adalah harta penting kedua-dua pengendali ini.

Contoh paling mudah:

Salin kod Kod adalah seperti berikut:

foo = foo||bar;

Apakah maksud baris kod ini? Jawapan:

Salin kod Kod adalah seperti berikut:

//Jika foo wujud, nilai kekal tidak berubah, jika tidak tetapkan nilai bar kepada foo
jika(!foo)
foo = bar;

Dalam operasi logik JavaScript, 0, "", null, false, undefined, dan NaN semuanya akan dinilai sebagai palsu, manakala semua yang lain akan dinilai sebagai benar. Jadi dalam formula di atas foo = foo||bar;, || mula-mula mengira operan pertama Jika ia boleh ditukar kepada benar, yang bermaksud bahawa foo sudah mempunyai nilai, maka nilai ungkapan di sebelah kiri dikembalikan. jika tidak Kira bar operan kedua.

Selain itu, walaupun operan pengendali || bukan nilai Boolean, ia masih boleh dianggap sebagai operasi OR Boolean, kerana tidak kira jenis nilai yang dikembalikan, ia boleh ditukar kepada nilai Boolean .

Sudah tentu, adalah lebih teliti untuk menggunakan pendekatan berikut:

Salin kod Kod adalah seperti berikut:

if(foo) //Tidak cukup ketat

if(!!foo) //Lebih ketat, !! boleh menukar jenis nilai lain​​​ kepada jenis boolean

Anda boleh mengujinya:

Salin kod Kod adalah seperti berikut:

var foo;
nombor var = 1;
var string = "rentetan";
var obj = {};
var arr = [];


console.log(typeof(foo)); // undefined
console.log(typeof(nombor)); //nombor
console.log(typeof(string)); //string
console.log(typeof(obj)); //objek 
console.log(typeof(arr)); //objek

console.log(typeof(!!foo)); // boolean
console.log(typeof(!!nombor)); //boolean
console.log(typeof(!!string)); //boolean
console.log(typeof(!!obj)); //boolean
console.log(typeof(!!arr)); //boolean

Menggunakan ini boleh menjadi sangat konsisten dengan apa yang disebut dalam artikel Mengoptimumkan Projek JavaScript, supaya skrip berjalan kurang atau tidak sama sekali untuk mencapai tujuan mengoptimumkan JavaScript. Walau bagaimanapun, perlu diingat bahawa semasa menulis cara ini membantu kami menyelaraskan kod, ia juga membawa keburukan mengurangkan kebolehbacaan kod. Jadi perkara yang lebih baik untuk dilakukan ialah menambah komen yang sesuai.

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