JavaScript の 論理演算子


JavaScript の論理演算子の書き方についておさらいしてみました。

MDNでは このページ に詳しく記述があります。

論理積( AND )

// a & b

const a = 0;
const b = 1;

console.log(a & b);
// 0が出力される

論理和( OR )

// a | b

const a = 0;
const b = 1;

console.log(a|b);
// 1が出力される

否定( NOT )

// !a

const a = 0;

console.log(!a);
// 0(false) の否定 = 「true」が表示される

console.log(Number(!a));
// 0(false) の否定である「true」を数値変換 = 「1」が表示される

排他的論理和( XOR )

// a^b

const a = 0;
const b = 1;

console.log(a^b);
// 1が表示される

const c = 1;
const d = 1;

console.log(c^d);
//0が表示される

否定論理積(NAND)

否定論理積は NOT AND

// !(a&b)

const a = 0;
const b = 1;

console.log( !(a&b) );
// trueが表示される

const c = 1;
const d = 1;

console.log( !(c&d) );
// NOT c AND NOT d = falseが表示される

console.log( Number(!(c&d)) );
// 0が表示される

否定論理和 (NOR)

否定論理和は NOT OR

// !(a|b)

const a = 0;
const b = 1;

console.log( !(a|b) );
// falseが表示される

const c = 0;
const d = 0;

console.log( !(c|d) );
// NOT c OR NOT d = true が表示される

console.log( Number(!(c|d)) );
// 1が表示される

否定排他的論理和 または 論理等価 (XNOR)

a === b の結果で良い?

// (a === b)

const a = 0;
const b = 1;

console.log( a === b );
// falseが表示される

const c = 0;
const d = 0;

console.log( c === d );
// true が表示される

console.log( Number(c === d) );
// 1が表示される