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

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

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

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

Q&A

解決済

2回答

767閲覧

function (e = !1)というJSコードの引数は何か

Anon_

総合スコア334

JavaScript

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

0グッド

0クリップ

投稿2020/04/28 01:08

var test = function (e = !1) { }

上記のような引数の指定はeの初期値が1ではないという意味であっていますでしょうか?

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

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

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

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

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

kei344

2020/04/28 03:25

まだ質問が「受付中」になっていますが、「ベストアンサー」を選び「解決済」にされてはいかがでしょうか。
guest

回答2

0

ベストアンサー

上記のような引数の指定はeの初期値が1ではないという意味であっていますでしょうか?

違います。e = falseと同じ意味です。

JavaScriptをコード圧縮すると、falseより!1のほうが文字数が短いので、このように変換されることがよくあります。

投稿2020/04/28 01:09

maisumakun

総合スコア145208

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

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

Anon_

2020/04/28 03:11

なるほど。勉強になりました。
guest

0

上記のような引数の指定はeの初期値が1ではないという意味であっていますでしょうか?

関数のデフォルト引数なので、仰っているような比較式を書いてしまうとそもそもエラーになります。

js

1var test = function (e != 1) { 2} 3

あとは既にある回答のように!1の実行結果はfalseということで、短い記述を採用したものと思われます。

js

1console.log(!1);

蛇足

ここからは個人的興味で書いてみました。
!1がデフォルト引数にできるということは、色々書けそう。

js

1var test = function (e = (12+3+4)) { 2 return e; 3} 4 5var test2 = function (e = test()) { 6 console.log(e); 7} 8test2(); //19

これは便利・・・?

投稿2020/04/28 01:52

m.ts10806

総合スコア80861

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

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

maisumakun

2020/04/28 02:27 編集

式を書く場合として、function(a, b = a)(それ以前の引数を使う)やfunction(time = Date.now())(実行する状況によってデフォルトが変わる)のような指定は便利かもしれないです。 なお、JavaScriptやRubyのデフォルト引数は呼び出し時に評価されますが、Pythonなど、メソッドの作成時にしか評価されない言語もあるので要注意です(もっとも、PHPのように定数式しか書けないなら、いつ評価しても差はないですが)。
m.ts10806

2020/04/28 02:29

動的なデフォルト引数って変な感覚です。
Anon_

2020/04/28 03:11

ご回答いただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問