オライリーの JavaScript 第6版を図書館から借りて、 いろいろ調べている。 8 章の関数は知らないので、少し調べてみた。
クロージャの理解が必要である。
let scope = "global scope";
function checkscope() {
let scope = "local scope";
function f() {return scope; }
return f();
}
checkscope() // ==> "localscope"
無名関数式も使える。特に sort は順番を決めるうえで大切だ。
let a = new Array(800, 108, 1003, 50000);
a.sort(); // 1003, 108, 50000, 800 辞書式。
a.sort(function(a, b) {
return a - b;
}); // 108, 800, 1003, 50000 数値順
大文字と小文字を区別せずにソートしたいときは、toLowerCaseを使う。
a = ['formiko', 'Besteto', 'kato', 'Hundo'] // エスペラントでそれぞれ、アリ、虫、ネコ、イヌ
a.sort(); // ['Besteto', 'Hundo', 'formiko', 'kato'] 大文字小文字を区別
a.sort(function(s, t) {
let a = s.toLowerCase();
let b = t.toLowerCase();
if (a < b) return -1;
if (a > b) return 1;
return 0;
}); // ['Besteto', 'formiko', 'Hundo', 'kato']
関数の引数を可変にしたいとき、「可変引数」というキーワードで検索すると、JavaScript では「残余引数」
(rest parameters) という呼び名であることがわかった。
残余引数(developer.mozilla.org)
即時実行関数式(Immediately Invoked Function Expression, IIFE)とは、定義されるとすぐに実行される JavaScript の関数のことをいう。 IIFE (即時実行関数式)(developer.mozilla.org) を参照してほしい。 この式は、グローバル名前空間の汚染を避けるために使われる。自己実行無名関数(Self-Executing Anonymous Function)とも呼ばれる。
即時実行関数式は次のいずれかの形である。
(function () { // … })(); (() => { // … })(); (async () => { // … })();
まりんきょ学問所 > JavaScript 手習い > 関数