0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ハンズオンJavaScript(第3章)の勉強メモ

Last updated at Posted at 2025-10-24

はじめに

オライリー社の「ハンズオンJavaScript」を読みながら、気づいたことや、重要と思われるポイントをメモしていきます。

今回は、第3章「処理を学ぶ」です。
式、文、関数定義などに関する内容になっています。

変数のスコープ

{
  let a = 3;
  console.log(a);
}
console.log(a);

上のコードを実行すると、2回目のconsole.log(a)のところで、ReferenceErrorの例外が投げられます。

Uncaught ReferenceError: a is not defined
    at <anonymous>:5:13

スクリプト言語によっては、変数がない時は、勝手に宣言して先に進むことがありますが、JavaScriptでは例外が投げられますね。

様々なforの書き方

まずはオーソドックスな書き方。

> for (let i = 0; i < 3; i++) {
  console.log(i);
}
1
2
3

他の言語でもよく見られる書き方ですね。

次に、配列を指定して、1つずつ取り出すときに使える、for-of文

> const array = [1, 2, 3];
> for (const i of array) {
  console.log(i);
}

1
2
3

次に、オブジェクトを指定して、プロパティを1つずつ取り出せる、for-in文

> const obj = {a: 1, b: "bbb", c: [true, false]};
> for (const param in obj) {
  console.log(param + ":" + obj[param]);
}

a:1
23:15:18.246 VM374:3 b:bbb
23:15:18.246 VM374:3 c:true,false

paramには、プロパティ名が入ります。ブラケット記法([])を使うことで、プロパティの値も取得できます。

関数の定義

関数は3つの方法で定義できます。
以下は、関数宣言

function sum(a, b) {
  return a + b;
}

以下は、関数式

let sum = function(a, b) {
  return a + b;
}

柔軟性が高い指定方法です。
関数を変数にセットすることで、関数呼び出し時の引数にそれを指定することができます。
なお、関数を引数として受け取る関数のことを、高階関数と呼びます。
また、関数の戻り値として関数を返すこともできます。

以下は、アロー関数

let sum = (a, b) => {
  return a + b;
}

コールバック関数などでよく見られる形式です。
本書では、内部の動作で改善されているため、アロー関数を使用することを勧めてました。
個人的には、コールバック関数以外でこれを見かけると、違和感を覚えそうです・・。

仮引数には、デフォルト値を指定可能です。

> function sum(a, b = 2) {
  return a + b;
}
> sum(1);
3

取りうる引数の数を可変にしたい時は、残余引数を使います。
残余引数は、仮引数の最後に来るよう、指定します。

> function sum(a, b, ...others) {
  let result = a + b;
  for (i of others){
    result += i;
  }
  return result;
}
> sum(1, 2, 3, 4);
10

関数の部分適用

一部の引数だけに、値を適用しておくことができます。
これを関数の部分適用と呼びます。

> function sum(a, b){
  return a + b;
}
> function sumPartial(a){
  return function(b) {
    return sum(a, b);
  }
}
> const aaa = sumPartial(1);
> aaa(2);

これまで、このような使い方をしたことはなかったのですが、プログラム内で処理を行っていく中で、徐々に計算で使用する値が決まっていくようなシーンがあれば、利用できそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?