第11章. 現代文法、レキシカル・スコープ、クロージャ:深刻な関数
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、さらに本格的な関数を紹介する。引数やパラメータ、代入を扱う高度なテクニックを使って、構文のレベルを上げる方法を紹介する。さらに、JavaScriptがどのようにスコープを管理するのか、その細かい点についても見ていく。このスコープの微妙な違いを探る旅は、しばしば謎に包まれがちだが、JavaScript を使いこなす上で極めて重要な概念であるクロージャの核心へと私たちを導いてくれる。最終的には、あなたが想像していた以上にJavaScriptの式が表現できるようになるだろう。
注
そして、もしあなたが閉鎖という言葉を聞いたことがあっても、それが何なのかよく知らないのなら、あなたは正しい場所にいる!
関数構文に本腰を入れる
この時点で、関数の基本的な構文について知っておくことはもう何もないと思うかもしれないが、実はJavaScriptには、関数の使い方をよりわかりやすく、表現力豊かにするために追加された構文の拡張がいくつもある。スコープとクロージャの話に入る前に、関数を呼び出したり、関数から値を受け取ったりするときにできることをすべて確認しておこう。
デフォルト・パラメータでコードを合理化する
メッセージと受信者を受け取る関数greeting があるとしよう:
function greeting(message, recipient) {
console.log(message, recipient);
}
greeting 、こう呼びかけよう:
こんな風に引数を外してしまったら、何が得られると思う?
JavaScriptはデフォルトのパラメータ値を提供することで、これに対処する方法を提供している。呼び出し元が引数を渡さなかった場合、undefined の代わりにそのデフォルト値が使われる。 このように動作する:
試してみよう:
どのパラメータにもデフォルト値を指定することができる。ここでは、greeting の両パラメータにデフォルト値を指定する:
function greeting(message="Howdy", ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access