LoginSignup
1
1

More than 1 year has passed since last update.

モダンJSの基本

Last updated at Posted at 2021-10-29

const、varについて

  • letは上書きは可能だが、再宣言はできない
  • constは上書きも再宣言もできない
  • constで定義したオブジェクトはプロパティの変更が可能
  • constで定義した配列の値の変更が可能

テンプレート文字列

${}で変数を表示できる、+を使わなくてよくなる

const name = "ハム";
const age = 27;
const message = `私の名前は${name}です。${age}歳です`;
console.log(message);

アロー関数

// 従来の関数
const func1 = function (str) {
  return str;
};
console.log(func1("func1です"));

// アロー関数
const func2 = (str) => {
  return str;
};

console.log(func2("func2です"));

分割代入

オブジェクト

// 分割代入
const me = {
  name: "はむ",
  age: 27
};
// オブジェクト名meと何回も書くことになる
const mes1 = `私の名前は${me.name}です。${me.age}歳です。`;
console.log(mes1);
// 分割代入を使う
const { name, age } = me;
const mes2 = `私の名前は${name}です。${age}歳です。`;
console.log(mes2);

配列

const me = ["ハム", 27];
const mes1 = `私の名前は${me[0]}です。${me[1]}歳です。`;
console.log(mes1);

const [name, age] = me;
const mes2 = `私の名前は${name}です。${age}歳です。`;
console.log(mes1);

デフォルト値

say();の引数がないときにはデフォルトで”ありません”と出るように設定することができる

const say = (name = "ありません") => console.log(`私の名前は${name}です`);
say("ハム");

スプレッド構文

スプレッド構文は奥が深そう

// スプレッド構文
// 配列の展開
const arr1 = [1, 2];
console.log(arr1);
console.log(...arr1);

const sum = (num1, num2) => num1 + num2;
console.log(sum(arr1[0], arr1[1])); //3となる
console.log(sum(...arr1)); //3となる

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

// 配列のコピー
const arr4 = [5, 6];
const arr5 = [7, 8];

// const arr6 = arr4;でもコピーはできるが、arr4の参照を引き継ぐのでバグの元になりやすい
const arr6 = [...arr4];
console.log(arr6); //5,6

const arr7 = [...arr4, ...arr5];
console.log(arr7); //5,6,7,8

mapやfilterを使った配列の処理

mapはなんでも回す、filterは回しながら条件にあったものを返す

const nameArr = ["たろう", "じろう", "はな"];
// 普通のfor
for (let index = 0; index < nameArr.length; index++) {
  console.log(nameArr[index]);
}

// map
const nameArr2 = nameArr.map((name) => {
  console.log(name);
});

// map省略
nameArr.map((name) => console.log(name));

//map1は第2引数にインデックスをとれる
nameArr.map((name, index) => console.log(name, index));

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

JSでの&&、||の本当の意味

// ||は左側がfalseなら右側を返す,左側がtrueなら左側を返す
const num = null;
const fee = num || "金額";
console.log(fee);
// &&は左側がfalseなら左側を返す、trueなら右側を返す
const num = null;
const fee = num && "金額";
console.log(fee);
1
1
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
1
1