[解決済み] javascriptでダブルエクスクラメーション(!)はどのように機能するのでしょうか?[重複しています]。
2022-01-25 21:14:48
質問
Discover Meteorのデモを見ているのですが、「return !!! userId;」が具体的にどのように機能するのかがわからず、悩んでいます。 この部分 :
Posts.allow({
insert: function(userId, doc) {
// only allow posting if you are logged in
return !! userId;
}
});
解決方法は?
!
は論理否定または"not"演算子です。
!!
は
!
を2回行う。これは、quot;truthy" または "falsy" の値を、quot;truthy" にキャストするための方法です。
true
または
false
それぞれ ブーリアンが与えられると
!
はその値を否定する,つまり
!true
となります。
false
であり、その逆も同様です。boolean以外のものが与えられると、その値はまずbooleanに変換され、次に否定される。たとえば
!undefined
は、まず
undefined
を
false
そして、それを否定することで
true
. もう1つの
!
演算子(
!!undefined
となります。
false
ということで、実質的には
!!undefined
が変換されます。
undefined
から
false
.
JavaScriptでは、値
false
,
null
,
undefined
,
0
,
-0
,
NaN
および
''
(空文字列)は "falsy"値です。それ以外の値は、"truthy." です。
(1):7.1.2
の真理値表はこちらです。
!
と
!!
を様々な値に適用しています。
value │ !value │ !!value
━━━━━━━━━━━┿━━━━━━━━━━┿━━━━━━━━━━━
false │ ✔ true │ false
true │ false │ ✔ true
null │ ✔ true │ false
undefined │ ✔ true │ false
0 │ ✔ true │ false
-0 │ ✔ true │ false
1 │ false │ ✔ true
-5 │ false │ ✔ true
NaN │ ✔ true │ false
'' │ ✔ true │ false
'hello' │ false │ ✔ true
関連
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングした
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】SyntaxError: 'import' と 'export' は 'sourceType: module' とだけ表示されるかもしれない - Gulp
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】'useState' が定義されていない no-undef React
-
[解決済み】Vueが定義されていない
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?