算術演算子+ - * / % () 異常状況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 インストール チュートリアル
目次序文さまざまなオブジェクト間の関係配列バッファ型付き配列Uint8ClampedArray文字間...
背景ご存知のとおり、nginx は高性能な Web サーバーであり、負荷分散やリバース プロキシによ...
MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...
1. インターネットで長時間検索しましたが、判定表が存在するかどうかがわからなかったので、漠然と削除...
序文Tomcat は優れた Java コンテナですが、避けられない小さな落とし穴もいくつかあります。...
以下の情報はインターネットから収集したものです1. アンカーは、Web ページ作成におけるハイパーリ...
問題の説明MySQL が正常に起動しました。以下に示すように、 ps -ef |grep mysql...
序文2 つのテーブル内の同じフィールドの型が異なっていたり、エンコード タイプが異なっていたりするた...
今日は、Taobao、JD.comなどのショッピングモールでよく使われている、小さな画像の上にマウス...
1. ダウンロードアドレス: mysql-8.0.17-winx64ダウンロードして解凍する2. フ...
MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...
バックグラウンド コントローラー @RequestMapping("/getPDFStre...
Dockerをインストールするyumパッケージを最新バージョンに更新します: sudo yum up...
Docker は、ブリッジ、ホスト、オーバーレイなどの複数のネットワークを提供します。同じ Dock...
スクリプトを書く目的は、さまざまなサービスを手動で起動しなくて済むようにすることです(怠惰のためでも...