Web制作

指定した時間経過後に動き出す処理/メソッドに関数を入れる~プログラミング学習

指定した時間が経過した後に、何か操作を加えたいと思うことはないでしょうか。

setTimeoutメソッドを利用すると、それが可能です。

例えとして、80以上の数値を入力して結果ボタンを押すと、3秒後に合格と表示されるコードを作ります。

メソッドとは?

setTimeoutメソッドは、setTimeout(関数、時間)という形で指定します。

第一引数の関数の部分には、下記のように、アロー関数という形で代入、第二引数の3000を入力しました。

setTimeout(()=>{
box.textContent=`${score}点、${judge}`;
},3000);

scoreは、入力した得点、judgeは合格または不合格です。

80をボックスに入力し、結果ボタンを押してみると、3秒後に

80点、合格

と表示されます。

一方、75とボックスに入力し、結果ボタンを押すと、

75点、不合格と表示されます。

厳格に設定した通りに表示されます。

【入力ボックスを含めた全体のJavaScript】

const buttonResult=document.getElementById('button-result');

const input=document.getElementById('score');
const box=document.getElementById('box');

const calculateResult=( )=>{
  let judge;
  const score=input.value;

  if(score>=80){
    judge='合格';
  }else{
    judge='不合格';
  }

  return judge;
};

buttonResult.addEventListner('click',( )=>{
  const score=input.value;
  const judge=calculateReslult( );

  setTimeout(( )=>{
    box.textContent=`${score}点、${judge}`;
  },3000);
});

関数スコープ内で宣言した変数

calcutateResult関数内でjudge変数を宣言し、80点以上の場合に合格、それ以外は不合格としています。

クリックイベントコールバック関数内で宣言した変数

結果ボタンをクリックした時の処理が後半部分です。

クリックイベントコールバック関数内で宣言された変数scoreとjudgeは、calculateResult関数内と同じ名前ですが、異なるスコープ内で定義されているため、別々のものとして扱われると考えていいでしょう。

【HTML】

<body>
  得点<input type="text" id="score">
  <div>
  <button type="button" id="button-result">結果</button>
  </div>
  <div id="box"></div>
</body>

リスキリング、何かスキルを身に付けたいという方は、フロントエンド学習が始めやすいため参考にご覧ください。

-Web制作

Copyright© サァーチpage , 2024 All Rights Reserved.