仕事で身に付けた技術や仕事以外で身に付けた知識を、自分用の備忘録として投稿していきたいと思います。
今日の内容
会社で先輩方にしていただいた、Vue.jsで書いたコードのフィードバックで、javascriptのデフォルト引数を使ったので、備忘録として残します。
使うことになったきっかけ
空配列を初期値とした変数が、なぜかUndefined
になってしまっていて、どこでUndefined
が入ってしまっているのかわからなかったので応急処置として使いました。
(はじめは、if
分岐でUndefined
が入っていたときの処理を書いていました。デフォルト引数を使うことで、ネストが減りました)
使い方
至ってシンプル。引数に続けて=デフォルト値
を書くだけ。引数が未定義だったとき、デフォルト値が引数にセットされる。
sample_undefined.js
//引数が未定義
function sum(x=0, y=0, z=0){
return x + y + z;
}
sum(); //0
sample.js
function sum(x=0, y=0, z=0){
return x + y + z;
}
const x = 1;
const y = 1;
const z = 1;
//引数が定義されているのでデフォルト値はセットされない
sum(x,y,z); //3
//nullが代入されているときもデフォルト値は使われない
function message(mess = "Undefined"){
return mess;
}
const mess = null;
//引数が定義されているのでデフォルト値はセットされない
message(mess); //null
公式ドキュメント:
オプション関数が使える開発言語
javascriptだけでなく、PythonやPHP,C#にもオプション関数が存在する。
Pythonでの書き方
sample.py
#引数が未定義
def Sum(x = 0, y = 0, z = 0):
return x + y + z #0
PHPでの書き方
sample.php
//引数が未定義
function sum($x = 0, $y = 0, $z = 0){
return $x + $y + $z; //0
}
C#での書き方
sample.cs
//引数が未定義
static int Sum(int x = 0, int y = 0, int z = 0){
return x + y + z; //0
}