4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[JavaScript] モダンな書き方

Last updated at Posted at 2021-05-23

#分割代入
↓${myProfile.name}のように書くのが面倒くさいので、
nameを「どのオブジェクトから参照するか」を先に定義しています。

オブジェクトVer

const myProfile = {
  name: "たかし",
  age: 20,
}

const { name, age } = myProfile;
const message = `名前は${name}${age}歳です。`;
console.log(message);

配列Ver

const myProfile = ["たかし", 20];
const [name, age] = myProfile;
const message = `名前は${name}${age}歳です。`
console.log(message);

#デフォルト値

↓「こんにちは、undefinedさん!」と出力されます。

const sayHello = (name) => console.log(`こんにちは、${name}さん!`);
sayHello();

↓引数が設定されていなかった場合、undefinedと出力されてしまうのは望ましくないため、
↓デフォルト値を設定しておきます。

const sayHello = (name = "たかし") => console.log(`こんにちは、${name}さん!`);
sayHello();

#スプレッド構文
#####配列の展開
... + 配列という書き方をすると、中身の要素を順番に処理し、展開してくれます。

const arr1 = [1, 2];

const sumFunc = (num1, num2) => console.log(num1 + num2);
sumFunc(...arr1);

Image from Gyazo

#####まとめる
num1, numm2は順番通り受け取って、残りはいくつだろうと、まとめて配列で受け取る

const arr2 = [1, 2, 3, 4, 5];
const [num1, num2, ...arr3] = arr2;
console.log(num1, num2, arr3)

Image from Gyazo

#####配列のコピー
const arr6 = [...arr4];とすることで、arr4と全く同じ内容の配列を作ることができます。

const arr4 = [10, 20];
const arr5 = [30, 40];
const arr6 = [...arr4];
console.log(arr4, arr6);

Image from Gyazo

#####配列の結合
const arr7 = [...arr4, ...arr5];とすることで、
arr4とarr5の要素を結合した、新たな配列を作ることができます。

const arr4 = [10, 20];
const arr5 = [30, 40];
const arr7 = [...arr4, ...arr5];
console.log(arr7);

Image from Gyazo

#map
mapの基本的な構文

const nameArr = ["田中", "山田", "佐藤"];
const nameArr2 = nameArr.map((name) => {
  return name;
})
console.log(nameArr2);

Image from Gyazo

↓配列をループ処理する

nameArr.map((name) => console.log(name));

Image from Gyazo

要素が何番目に出力されたかを把握したい場合には、第2引数にindexを追加します。

const nameArr = ["田中", "山田", "佐藤"];
nameArr.map((name, index) => console.log(`${index + 1}番目は${name}です。`));

Image from Gyazo

#filter
条件に一致したものだけ返却して、新しい配列を生成するような関数
returnの後に条件式を書いて、その条件に一致したものだけを返します。

↓奇数だけ取り出す

const numArr = [1, 2, 3, 4, 5];
const newNumArr = numArr.filter((num) => {
  return num % 2 === 1;
});
console.log(newNumArr);

Image from Gyazo

#三項演算子
toLocaleStringは、3桁区切りにして、金額表示のようにしてくれる関数です。
numberに対して使えます。

const num = 1300;
console.log(num.toLocaleString());

Image from Gyazo

↓numがnumberだった場合、3桁区切り。
↓number以外だった場合、"数値を入力してください"と出力する

const num = "1300";

const formattedNum = typeof num === 'number' ? num.toLocaleString() : "数値を入力してください"
console.log(formattedNum);

Image from Gyazo

↓return結果を判定する際にも三項演算子を使ったりします。

const checkSum = (num1, num2) => {
  return num1 + num2 > 100 ? "100を超えています。" : "許容範囲内です。";
}
console.log(checkSum(90, 9));

Image from Gyazo

#論理演算子の正しい意味
|| の意味は、"または"ではなく、"左がfalseの場合、右を返す" です。

↓JavaScriptではnullはfalseを返すので、"金額未設定です"が返ってきます。

const num = null;
const fee = num || "金額未設定です";
console.log(fee);

Image from Gyazo

&&の意味は、"左がtrueの場合、右を返す" です。

const num2 = 100;
const fee2 = num2 && "何か設定されました";
console.log(fee2);

Image from Gyazo
num2 = nullの場合は、nullが返ってきます

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?