算術演算子+ - * / % () 異常状況1: 特殊値リテラルを含む操作
5/無限大=0 5%無限大=5 無限大%5=NaN 無限大+5=無限大 無限大 / 無限大 = NaN 無限大 - 無限大 = NAN 無限大 % 無限大 = NAN 特殊値演算は仕事では使われず、実用上も意味がありませんが、面接などで遭遇した場合に備えて理解しておく必要があります。 異常な状況 2: 他の種類のデータが数学演算に関与します。文字列を含む + 演算 (記号の片側にのみ文字がある場合も含む): + 記号はハイフンになり、前後を接続して文字列全体を形成します。 例えば: var a = 3 - "36" % 5 + "2" - 2 コンソールログ(a) var b = "36" % 5 コンソールログ(b) var c = 3 - "36" % 5 + "2" コンソール.log(c) 出力:
暗黙的な変換: 文字列を含む + 演算を除き、他のすべてのデータ型が数学演算に参加する場合、コンピューターは演算に参加する前に他のデータ型を数値型に自動的に変換します。このプロセスでは、parseInt() や Number() などのメソッドを使用する必要はありません。プロセスは秘密裏に実行されます。これは暗黙的な変換プロセスです。 暗黙的な変換 その他のデータ型は暗黙的に数値型に変換されます。
比較演算子関係演算子とも呼ばれます。比較演算子はオペランドを比較し、ブール値を返します。演算の結果は true または false のいずれかになります。
異常ケース1: 比較演算に特殊な値が関与する
無限大 == 無限大 -> 真 無限大 === 無限大 -> 真 無限大 > 無限大 -> 偽 無限大 >= 無限大 -> True 異常な状況 2: 他のデータ型が比較演算に参加する (文字列間の比較を除く)他のデータ型も比較のために暗黙的に数値に変換されます。 “123”→123 真→1 偽→0 null→0 未定義→NaN “”→0 “abc”→NaN nullの判定は特別です。nullと0が判定される場合、等価性は偽、>=と<=は真となります。 null == 未定義 -> True 異常事態3: 文字列と文字列の比較暗黙的に数値に変換されることはありません。ただし、2 つの文字列は Unicode 順に比較されます。 文字コードの順序: 前から後ろへ 0-9、AZ、az、前の文字が後ろの文字より小さい 比較する場合、2 つの文字列の長さは重要ではありません。比較は最初の文字から始まり、サイズが決定されるまで続きます。それ以上の比較は行われません。 論理演算子論理演算子はブール値の間でよく使用されます。オペランドが両方ともブール値の場合、戻り値もブール値になります。
異常事態
ブール値への暗黙的な変換のルール
非ブール値に使用すると、戻り値は非ブール値になる可能性があります。実際、この操作は非常に簡単です。
論理演算子の演算順序包括的な演算順序: NOT、AND、OR 代入演算子
単項演算子
++ または -- 記号は、変数の前または後に記述できます。位置が異なると、プログラムの実行結果が異なる場合があります。 ++ を例に挙げます。
例1 var a = 3; var b = a++; var c = ++a; コンソールログ(a,b,c) 出力:
例2 出力: 操作の優先順位優先順位は最高から最低まで:
例 var a = 4; var num = 1 * (2 + 3) && a++ || 5 > 6 && 7 < 8 || !9; コンソール.log(数値) 出力:
要約する以上で、JavaScript の演算子計算でエラーになりやすい部分についてまとめました。JavaScript の演算子計算に関するより詳しい内容は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.18 のインストールと設定方法のグラフィックチュートリアル
>>: Linux での mysql-5.7.28 インストール チュートリアル
コマンドライン mysqld –skip-grant-tables は mysql8 では正常に起動...
目次序文ネットワーク速度のフロントエンド判定原理のまとめ1. img を読み込むか Ajax リクエ...
1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...
この記事は、Ubuntu 17.10 での Docker CE のインストールを記録するために使用さ...
1. インストールパッケージを使用してMySQLをインストールします(オンラインダウンロードは遅すぎ...
以下のように表示されます。 def test_write(self): フィールド=[] field...
目次序文:暗号化アルゴリズム: 1. HTTPS の概要2. NginxはHTTPSウェブサイト設定...
jQuery フォーム検証の例 / ユーザー名、パスワード、住所、電子メールの検証を含む下記の通り ...
1 インストールリソースパッケージmysql-8.0.18-1.el7.x86_64.rpm-bun...
ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...
CSS スクロールバースタイル変更コード .scroll::-webkit-scrollbar { ...
IFNULL(式1,式2) expr1 が NULL でない場合、IFNULL() は expr1 ...
1. どの 3 つの形式ですか?それぞれ、gif、jpg、png です。画像ファイルを最適化すること...
テーブル ヘッダーが固定されている場合は、それを 2 つのテーブルに分割する必要があります。1 つの...
前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...