JavaScript の論理演算子は次のとおりです: 1. 論理 AND "&&" (両方のオペランドが true の場合にのみ true を返します)、2. 論理 OR "||" (両方のオペランドが true の場合は true、または 1 つ)それらのうち true の場合、true を返します; 3. 論理値が「!」ではない場合、オペランドの値をブール値に変換し、それを否定します。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript の論理演算子
論理演算子は通常、複数の式を結合するために使用されます。論理演算子の結果はブール値であり、結果は 2 つだけあり、true ではありません。false です。次の表に、JavaScript でサポートされている論理演算子のリストを示します。
Operator
Name
Example
&&
論理 AND
xx && y は、x と y の両方が true の場合、それは true であることを意味します
||
論理的 OR
x || y は、x または y のいずれかが true の場合、それは true であることを意味します
!
論理的ではありません
#x は、x が true でない場合は true であることを意味します
論理 AND 演算
論理 AND 演算 (&&
) は AND ブール演算です。両方のオペランドが true の場合にのみ true を返し、それ以外の場合は false を返します。詳細な説明を表に示します。
#論理 AND 演算
最初のオペランド 2 番目のオペランド 演算結果
true true true
true false false
#false##true false
##false ##false
false
論理 AND は短絡論理の一種で、左側の式が false の場合、結果は短絡されて直接返され、上の式は権利は評価されなくなります。演算ロジックは次のとおりです。
ステップ 1: 最初のオペランド (左側の式) の値を計算します。
ステップ 2: 最初のオペランドの値を検出します。左側の式の値が false (null、unknown、NaN、0、""、false など) に変換可能な場合、操作は終了し、最初のオペランドの値が直接返されます。
ステップ 3: 最初のオペランドを true に変換できる場合は、2 番目のオペランド (右側の式) を評価します。
ステップ 4: 2 番目のオペランドの値を返します。
例 1
次のコードでは、論理 AND 演算を使用して変数を検出し、初期化します。
var user; //定义变量
(! user && console.log("没有赋值")); //返回提示信息“没有赋值” ログイン後にコピー
以下と同等: var user; //定义变量
if (! user){ //条件判断
console.log("变量没有赋值");
} ログイン後にコピー
変数 user の値が 0 の場合、または空の文字列などの false 値がブール値に変換された場合は、false になります。値が割り当てられている場合でも、プロンプトが表示されます。変数には値が割り当てられていません。したがって、設計時には、論理 AND の左側の式の戻り値が予測可能な値であることを確認する必要があります。
var user = 0; //定义并初始化变量
(! user && console.log("变量没有赋值")); //返回提示信息“变量没有赋值” ログイン後にコピー
左側の式が false の場合、右側の式は直接スキップされるため、右側の式には代入、インクリメント、デクリメント、関数呼び出しなどの有効な演算を含めることはできません。後続の操作に影響を及ぼし、潜在的な影響をもたらします。
論理 OR 演算
論理 OR 演算|| はブール OR 演算です。両方のオペランドが true であるか、どちらか一方が true の場合は true を返し、それ以外の場合は false を返します。詳細を図に示します。
論理和演算
最初のオペランド 2番目のオペランド演算結果 true true true true false true#false ##true true ##false ##false false 逻辑或也是一种短路逻辑,如果左侧表达式为 true,则直接短路返回结果,不再运算右侧表达式。运算逻辑如下:
示例2
针对下面 4 个表达式:
var n = 3;
(n == 1) && console.log(1);
(n == 2) && console.log(2);
(n == 3) && console.log(3);
( ! n ) && console.log("null"); ログイン後にコピー
可以使用逻辑或对其进行合并:
var n = 3;
(n == 1) && console.log(1) ||
(n == 2) && console.log(2) ||
(n == 3) && console.log(3) ||
( ! n ) && console.log("null"); ログイン後にコピー
由于&&运算符的优先级高于||运算符的优先级,所以不必使用小括号进行分组。不过使用小括号分组后,代码更容易阅读。
var n = 3;
((n == 1) && console.log(1)) ||
((n == 2) && console.log(2)) ||
((n == 3) && console.log(3)) ||
(( ! n ) && console.log("null")) || ログイン後にコピー
逻辑与和逻辑或运算符具有以下 2 个特点:
逻辑非运算
逻辑非运算!
是布尔取反操作(NOT)。作为一元运算符,直接放在操作数之前,把操作数的值转换为布尔值,然后取反并返回。
示例3
下面列举一些特殊操作数的逻辑非运算返回值。
console.log( ! {} ); //如果操作数是对象,则返回false
console.log( ! 0 ); //如果操作数是0,则返回true
console.log( ! (n = 5)); //如果操作数是非零的任何数字,则返回false
console.log( ! null ); //如果操作数是null,则返回true
console.log( ! NaN ); //如果操作数是NaN,则返回true
console.log( ! Infinity ); //如果操作数是Infinity,则返回false
console.log( ! ( - Infinity )); //如果操作数是-Infinity,则返回false
console.log( ! undefined ); //如果操作数是undefined,则返回true ログイン後にコピー
示例4
如果对操作数执行两次逻辑非运算操作,就相当于把操作数转换为布尔值。
console.log( ! 0 ); //返回true
console.log( ! ! 0 ); //返回false ログイン後にコピー
逻辑与和逻辑或运算的返回值不必是布尔值,但是逻辑非运算的返回值一定是布尔值。
【推荐学习:javascript高级教程 】
以上がJavaScript の論理演算子とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
2023-04-26 17:59:18
2023-04-26 17:47:48
2023-04-26 17:41:42
2023-04-26 17:37:05
2023-04-26 17:31:25
2023-04-26 17:27:32
2023-04-25 19:57:58
2023-04-25 19:53:11
2023-04-25 19:49:11
2023-04-25 19:41:54