[解決済み] チルダではない)~は、どのようにArrayメソッド呼び出しの結果を変更するのですか?
2023-01-20 17:32:05
質問
のコメントを読むと、jQueryの
inArray
ページ
ここで
には、興味深い宣言があります。
!!~jQuery.inArray(elm, arr)
さて、二重感嘆符は、結果をタイプに変換すると思います。
boolean
という値で
true
. 私が理解していないのは、チルダ(
~
) 演算子を使用することでしょうか?
var arr = ["one", "two", "three"];
if (jQuery.inArray("one", arr) > -1) { alert("Found"); }
をリファクタリングして
if
ステートメントをリファクタリングしています。
if (!!~jQuery.inArray("one", arr)) { alert("Found"); }
内訳です。
jQuery.inArray("one", arr) // 0
~jQuery.inArray("one", arr) // -1 (why?)
!~jQuery.inArray("one", arr) // false
!!~jQuery.inArray("one", arr) // true
また、チルダを前に置くと、結果が
-2
.
~!!~jQuery.inArray("one", arr) // -2
私はここでのチルドの目的を理解していません。 誰かがそれを説明するか、リソースに私を導くことができますか?
どのように解決するのですか?
チルダ演算子は実はjQueryの一部ではありません。JavaScript自体のビット単位のNOT演算子なのです。
参照 チルダ(~)の大いなる謎 .
あなたの実験で奇妙な数値が得られるのは、整数(私の知る限り、2の補数かそのようなものとして保存されているかもしれません)に対してビット単位の論理演算を実行しているからです。
2 の補数 は、2進数で数字を表現する方法を説明しています。正解だったようです。
関連
-
[解決済み] 数値の配列の和の求め方
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] Facebookがブラウザに統合されたDeveloper Toolsを無効にする方法を教えてください。
-
[解決済み] JavaScriptには、与えられた範囲内の範囲を生成する "range() "のようなメソッドがありますか?
-
[解決済み] Javascriptの配列に、指定された値に等しい属性を持つオブジェクトが含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み】ビット単位の補数演算子(~チルダ)はどのように機能しますか?
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み】チルダが式の前にあるとき、何をするのですか?
-
[解決済み] 条件文を短くする方法
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる