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 までご連絡ください。
WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法
Dec 17, 2023 pm 02:54 PM
WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。
WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー
Dec 17, 2023 pm 05:30 PM
WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー
JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法
Dec 17, 2023 pm 12:09 PM
JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき
WebSocketとJavaScriptを使ったオンライン予約システムの実装方法
Dec 17, 2023 am 09:39 AM
WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。
JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築
Dec 17, 2023 pm 05:13 PM
JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは
JavaScriptでinsertBeforeを使用する方法
Nov 24, 2023 am 11:56 AM
使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。
簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法
Jan 05, 2024 pm 06:08 PM
JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用
JavaScript と WebSocket: 効率的なリアルタイム画像処理システムの構築
Dec 17, 2023 am 08:41 AM
JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。
See all articles