全面了解javascript运算符之逻辑运算符
前面的话
逻辑运算符对操作数进行布尔运算,经常和关系运算符一样配合使用。逻辑运算符将多个关系表达式组合起来组成一个更复杂的表达式。逻辑运算符分为逻辑非'!'、逻辑与'&&'、逻辑或'||'3种,本文将介绍这三种逻辑运算符
逻辑非
逻辑非操作符由一个叹号(!)表示,可以应用于ECMAScript中的任何值。无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作符首先会将它的操作数转换成一个布尔值,然后再对其求反
逻辑非对操作数转为布尔类型的转换类型与Boolean()转型函数相同,只不过最后再将其结果取反。而如果同时使用两个逻辑非操作符,实际上就会模拟Boolean()转型函数的行为
console.log(!!undefined);//false console.log(!!null);//false console.log(!!0);//false console.log(!!-0);//false console.log(!!NaN);//false console.log(!!'');//false console.log(!!false);//false
console.log(!!{});//true console.log(!![]);//true console.log(!!new Boolean(false));//true console.log(!!false);//false console.log(!!new Boolean(null));//true console.log(!!null);//false
//Boolean 变量(bFound)用于记录检索是否成功。找到问题中的数据项时,bFound 将被设置为true,!bFound将等于false,意味着运行将跳出while循环 var bFound = false; var i = 0; while (!bFound) { if (aValue[i] == vSearchValues) { bFound = true; } else { i++; } }
逻辑与
逻辑与运算符由两个和号(&&)表示,有两个操作数,只有在两个操作数都为true时,结果才返回true,否则返回false
//逻辑与(&&)的真值表 第一个操作数 第二个操作数 结果 true true true true false false false true false false false alse
逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。如果其中一个操作数不是布尔值,则逻辑与操作不一定返回布尔值
逻辑与操作属于短路操作,如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值
对于逻辑与而言,如果第一个操作数是false,则无论第二个操作数是什么值,结果都是false,则返回第一个操作数;如果第一个操作数为true,则结果的真假和第二个操作数的真假相同,则返回第二个操作数
//除了false、undefined、null、+0、-0、NaN、''这7个假值,其余都是真值 console.log('t' && ''); //因为't'是真值,所以返回'' console.log('t' && 'f'); //因为't'是真值,所以返回'f' console.log('t' && 1 + 2); //因为't'是真值,所以返回3 console.log('' && 'f'); //因为''是假值,所以返回'' console.log('' && ''); //因为''是假值,所以返回''
var i = 1; var result = (true && i++); console.log(result,i);//因为true是真值,所以执行i++,i是2,result是1 var i = 1; var result = (false && i++); console.log(result,i);//因为false是假值,所以不执行i++,i是1,result是false
逻辑与运算符可以多个连用,返回第一个布尔值为false的表达式的值
console.log(true && 'foo' && '' && 4 && 'foo' && true);// ''
关系运算符的优先级比逻辑与(&&)和逻辑或(||)的优先级高,所以类似表达式可以直接书写,不用补充圆括号
if(a+1==2 && b+2==3){ //Todo }
可以使用逻辑与运算符来取代if结构
if (a == b) { doSomething(); } // 等价于 (a == b) && doSomething();
逻辑与运算符常常用于回调函数使用中
//若没有给参数a传值,则a为默认的undefined,是假值,所以不执行a(),防止报错,如果给参数a传值,则执行函数a() function fn(a){ if(a){ a(); } } //等价于 function fn(a){ a && a(); }
逻辑或
逻辑或运算符由两个竖线(||)表示,有两个操作数,只有在两个操作数都是false时,结果才返回false,否则返回true
//逻辑或(||)的真值表 第一个操作数 第二个操作数 结果 true true true true false true false true true false false false
同样地,逻辑或操作也可以应用于任何类型的操作数,而不仅仅是布尔值。如果其中一个操作数不是布尔值,则逻辑或操作不一定返回布尔值
逻辑或操作也属于短路操作,如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值
对于逻辑或而言,如果第一个操作数是true,则无论第二个操作数是什么值,结果都是true,则返回第一个操作数;如果第一个操作数是fales,则结果的真假和第二个操作数的真假相同,则返回第二个操作数
console.log('t' || '');//因为't'是真值,所以返回"t" console.log('t' || 'f');//因为't'是真值,所以返回"t" console.log('' || 'f');//因为''是假值,所以返回"f" console.log('' || '');//因为''是假值,所以返回""
var i = 1; var result = (true || i++); console.log(result,i);//因为true是真值,所以不执行i++,result是true,i是1 var i = 1; var result = (false || i++); console.log(result,i);//因为false是假值,所以执行i++,i是2,result是1
同样地,逻辑或运算符也可以多个连用,返回第一个布尔值为true的表达式的值
console.log(false || 0 || '' || 4 || 'foo' || true);// 4
逻辑或运算符常用于为变量设置默认值
//如果没有向参数p传入任何对象,则将该参数默认设置为空对象 function fn(p){ p = p || {}; }
Atas ialah kandungan terperinci 全面了解javascript运算符之逻辑运算符. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Operator += digunakan untuk menambah nilai operan kiri kepada nilai operan kanan dan menetapkan hasilnya kepada operan kiri Ia sesuai untuk jenis berangka dan operan kiri mesti boleh ditulis.

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Python digunakan secara meluas dalam pelbagai bidang dengan sintaksnya yang ringkas dan mudah dibaca. Menguasai struktur asas sintaks Python adalah penting, kedua-duanya untuk meningkatkan kecekapan pengaturcaraan dan untuk mendapatkan pemahaman yang mendalam tentang cara kod tersebut berfungsi. Untuk tujuan ini, artikel ini menyediakan peta minda komprehensif yang memperincikan pelbagai aspek sintaks Python. Pembolehubah dan Jenis Data Pembolehubah ialah bekas yang digunakan untuk menyimpan data dalam Python. Peta minda menunjukkan jenis data Python biasa, termasuk integer, nombor titik terapung, rentetan, nilai Boolean dan senarai. Setiap jenis data mempunyai ciri dan kaedah operasinya sendiri. Operator Operator digunakan untuk melaksanakan pelbagai operasi pada jenis data. Peta minda merangkumi jenis operator yang berbeza dalam Python, seperti operator aritmetik, nisbah

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

Dalam bahasa Go, pengendali dinilai mengikut urutan dari keutamaan tinggi ke rendah. Urutan keutamaan operator biasa: 1. Tanda kurung: () (keutamaan tertinggi, digunakan untuk memaksa susunan operasi); ; 7. Operator perbandingan 8. Operator logik 9. Operator bersyarat (operator ternari);

Pengenalan kepada pengendali python Operator ialah simbol atau kata kunci khas yang digunakan untuk melaksanakan operasi antara dua atau lebih operan. Python menyediakan pelbagai operator yang meliputi pelbagai kegunaan, daripada operasi asas matematik kepada manipulasi data yang kompleks. Pengendali matematik Pengendali matematik digunakan untuk melaksanakan operasi matematik biasa. Ia termasuk: contoh operasi operator + penambahan a + b - penolakan a-b * pendaraban a * b / bahagi a / b % operasi modulo (ambil baki) a % b ** operasi kuasa a ** b // pembahagian integer (buang baki) a//b Operator Logik Operator logik digunakan untuk menggabungkan nilai Boolean dan menilai keadaan. Ia termasuk: contoh operasi operator dan operasi logik dan aandbor logik atau aorbnot logik bukan nota perbandingan
