LoginSignup
0
0

More than 1 year has passed since last update.

【超初学者】JavaScriptのfunctionとは

Last updated at Posted at 2022-04-02

騙し騙しやっていたので備忘録
間違いがあればご指摘ください

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秒からの経過秒数となっているので変換が必要

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