騙し騙しやっていたので備忘録
間違いがあればご指摘ください
functionとは?
https://kitsune.blog/function
こちらの方がわかりやすく説明してくださっています
関数と呼ばれる,何かをしたら何かを返してくれるプログラムである
例えば,現在の時間を00:00:00のように表示させたいとき,
var now = new Date(); // Dateオブジェクトを作る
var hours = now.getHours(); // DateオブジェクトにgetHoursメソッドを充てることで現在の時を取得
var minutes = now.getMinutes(); // DateオブジェクトにgetMinutesメソッドを充てることで現在の分を取得
var seconds = now.getSeconds(); // DateオブジェクトにgetSecondsメソッドを充てることで現在の秒を取得
// hours が10未満だった場合0をつける
if (hours < 10) {
seconds = '0' + seconds;
}
// minutesが10未満だった場合0をつける
if (minutes < 10) {
seconds = '0' + seconds;
}
// secondsが10未満だった場合0をつける
if (seconds < 10) {
seconds = '0' + seconds;
}
このようにするところだが,これをfunctionを使って,
10未満の場合0をつけるという同様の処理をしているところをメソッドにしたい
if (seconds < 10) {
seconds = '0' + seconds;
}
この部分を,
var addZero = function(value) {
if (value < 10) {
value = '0' + value;
}
return value;
}
このように変更し,
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
この部分のhours,minutes.secondsを下記のように再代入する
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var addZero = function(value) {
if (value < 10) {
value = '0' + value;
}
return value; // "戻り値"と呼ばれる valueとして値を返すという意味
}
hours = addZero(hours); // 再代入
minutes = addZero(minutes); // 再代入
seconds = addZero(seconds); // 再代入
解説
var addZero = function(value) {
この部分のvalueとは何か?
これはパラメーターと呼ばれるものであり,
function内の処理を代入された文字列です
後で定義される
hours = addZero(hours); // 再代入
minutes = addZero(minutes); // 再代入
seconds = addZero(seconds); // 再代入
この部分で,
すでにnow.getHours(); now.getMinutes(); now.getSeconds();
されていたhours minutes seconds 変数を,valueに代入するという意味である
よって,function内の処理を代入された文字列"value"に,hours,minutes,seconds を代入することにより,
hours,minutes,secondsにもfunction内の処理が適応されることになる
備考
パラメータは複数設定できる
var addZero = function(value, param2, param3) {
のように幾つでも追加できる
その場合,下記のようにパラメータと同じ数だけ追加する必要がある
hours = addZero(hours, 123, abc);
getTimeメソッドで時分秒全て取得できる
var hours = now.getTime();
ただし出力されるのは,1970年1月1日0時0分0秒からの経過秒数となっているので変換が必要