JavaScript 有 3 个方式论操作符 :
!:方式论非&&:方式论与||:方式论或
方式论非
方式论非操作符!检查和一二项是真 却是假 。 换言之,!v === false假如 v是下列 7 二项:
false00n:0 做为BigInt :空数组nullundefinedNaN
// Falsy values means `!v === true`!false; // true!0; // true!; // true!undefined; // true!null; // true!Number(abc); // true// All other values are “truthy”, meaning `!v === false`!1; // false!({}); // false!({ valueOf: () => 0 }); // false! ; // false
not 操作符常常回到两个常量,Deoria || 和 &&,切换值的常见方式 v 常量是采用方式论非操作符三次:
// Convert `v` to a boolean!!v;
方式论或
方式论或操作符 || 对 2 二项展开演算,假如最少有一二项是谓词,则回到两个谓词。
// True if `a` or `b` is truthy. Will only be `false` if// both `a` and `b` are falsy.!!(a || b);
方式论或操作符最常见于 if 执行语句 if 假如多个条件之一为真,则阻止。 但是,方式论或操作符 不一定 回到常量:
假如 a 是真实的, (a || b) === a假如 a 是假的, (a || b) === b
这与多个 or 操作符一起工作: a || b || c || d 回到最左边的真实值。 因此方式论或通常见于默认值:
const defaultNumReps = 2;function repeat(str, numReps) { // If `numReps` is null, undefined, or 0, this sets // `numReps` to the default value `2` numReps = numReps || defaultNumReps; let ret = ; for (let i = 0; i < numReps; ++i) { ret += str; } return ret;}
方式论与
方式论与操作符 && 对 2 二项展开演算,并回到 falsy,假如最少有一二项是假的:
// Only true if both `a` and `b` are truthy.!!(a && b);
方式论与操作符最常见于 if 执行语句 if 假如多个条件都为真,则阻塞。 但是,与方式论或操作符一样,方式论与操作符不一定回到常量:
假如 a 是假的 (a && b) === a假如 a 是真实的 (a && b) === b
给定两个由多个方式论和操作符组成的链 a && b && c && d,JavaScript 回到最左边的假值。
举报/反馈