質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1282閲覧

JavaScriptの文法において !! という演算子の意味を教えてください

echizeyayota

総合スコア106

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/09/06 03:02

いつもお世話になっております。
下記の質問についてご存知の方がいらっしゃいましたらご教示を願います。


【質問の主旨】

JavaScriptの文法において!! と言う演算子はどのような意味を持つのでしょうか?

【質問の補足】

1. 引用元のコードについて

この演算子は、GitHubに公開されているこちらのページの以下のコードで使われています。

// バリデーション valid: true, titleRules: [ v => !!v || 'タイトルは必須項目です', v => (v && v.length <= 20) || 'タイトルは20文字以内で入力してください' ], authorRules: [ v => !!v || '作者名は必須項目です', ],

2. MDNの確認について

MDNでJavaScriptの演算子について確認したところ、!! と言う記法については言及されていないように見えます。


以上、ご確認よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

v は文字列に限定されていると思いますが、その場合、空文字列と null や undefined が falsy になります。

Falsy (偽値) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN

つまり !v は falsy である空文字列などを true に、他の文字列を false に変換しています。
それを更に否定する !!v は空文字列などが false に、他の文字列が true になります。

投稿2021/09/06 03:10

Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

echizeyayota

2021/09/06 03:23

Zuishinさん。 コメントありがとうございます。 またMDNのリンクと具体的な使い方に関する紹介もありがとうございます。 今後ともどうぞよろしくお願いします!
guest

0

既出の質問ですが、それは一般的に 二重否定 と呼ばれているものです。実際は論理演算子である ! を値に対して2回適用しているだけです。

値を真偽値へ変換したいときによく使われます。

投稿2021/09/06 03:11

編集2021/09/06 03:17
BluOxy

総合スコア2663

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BluOxy

2021/09/06 03:19

一般的に と書きましたが、公式のフレーズではなかったので誇張表現であったかもしれません
echizeyayota

2021/09/06 03:21

BluOxyさん。 コメントありがとうございます。 > それは二重否定です。 了解しました。今後ともどうぞよろしくお願いします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問