&& логічний оператор І (AND).
Повертає true якщо два значення рівні true, інакше повертає false.
var a = true, b = false;
alert( a && b ); //false
console.log( true && true); //true
console.log( false && true); //false
console.log( false && false); //false
console.log( true && true && true ); //true
console.log( true && true && false ); //false
|| логічний оператор АБО (OR).
Повертає true якщо одне значення рівне true, інакше повертає false.
var a = true, b = false;
alert( a || b ); //true
console.log( true || true); //true
console.log( false || true); //true
console.log( false || false); //false
console.log( true || true || true ); //true
console.log( true || true || false ); //true
! логічний оператор НЕ (NOT).
Якщо оператор NOT застовується до булевого значення то повертає протилежне значення. Тобто якщо до true - поверне false, якщо до false - true.
alert( !false ); //true
alert( !true ); //false
var a = true;
var b = !a;
alert( b ); //false
Якщо застосовується до не булевого значення то спочатку переводить в булове значення, а потім повертає протилежне.
console.log(!true); //false
console.log(!false); //true
console.log(!undefined); // true
console.log(!null); // true
console.log(!20); //false
console.log(!0); //true
console.log(!NaN); //true
console.log(!{}); // false
console.log(!''); //true
console.log(!'Text'); //false
Також використовується подвійне заперечення !!. Використовується щоб перетворити значення до болевого.
alert( !!true );
var a;
var b=!!a;
alert( b ); //false
Якщо використовувати декілька логічних операторів то JavaScript використовує пріоритети для логічних операторів, тобто порядок їх виконання.
var a=true, b=true;
if( a && b)
alert('a та b істина');
function hello(name){
name=name || 'анонім';
alert('Привіт '+name);
}
hello();