[解決済み] javascriptの二重否定(!) - 目的は何ですか?[重複しています]。
2022-04-26 08:54:52
質問
重複の可能性があります。
とは何ですか! (not not)演算子とは何ですか?
私はこのようなコードに遭遇しました。
function printStackTrace(options) {
options = options || {guess: true};
var ex = options.e || null, guess = !!options.guess;
var p = new printStackTrace.implementation(), result = p.run(ex);
return (guess) ? p.guessAnonymousFunctions(result) : result;
}
そして、なぜ二重否定なのか、不思議でなりませんでした。また、同じ効果を得るための別の方法はないのでしょうか?
(コードは https://github.com/eriwen/javascript-stacktrace/blob/master/stacktrace.js )
解決方法は?
ブーリアン型にキャストする。最初の
!
はそれを一度否定し、このように値を変換します。
-
undefined
へtrue
-
null
からtrue
-
+0
からtrue
-
-0
からtrue
-
''
からtrue
-
NaN
からtrue
-
false
からtrue
-
他のすべての表現から
false
次に、他の
!
はそれを再び否定する。booleanへの簡潔なキャストで、まさに以下と同等です。
ブール値へ
という理由だけで
!
は
はその否定として定義される
. しかし、ここでは条件演算子の条件として使われるだけで、同じように真偽判定を行うので不要です。
関連
-
vueネットワークリクエストソリューション ネイティブネットワークリクエストとjsネットワークリクエストライブラリ
-
jq は html ページとデータを動的に分割する。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】オブジェクトからプロパティを削除する(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 実装 サイバーパンク風ボタン
おすすめ
-
vueディレクティブv-bindの使用と注意点
-
Vueのクラススタイルの使い方の詳細
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み] 期待される代入または関数呼び出し: 未使用式なし ReactJS
-
[解決済み] Web API エラー - このリクエストはブロックされました; コンテンツは HTTPS で提供されなければなりません
-
[解決済み】TypeErrorの解決方法。未定義またはヌルをオブジェクトに変換できない
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] オブジェクトのプロパティが存在するかどうかを、プロパティ名を持つ変数で確認するには?