7/4の日報
7月に入って急に忙しくなったが、相変わらず勉強時間は以前よりも取りやすくなっているので、引き続き勉強を進めたい。
今の仕事的に必要となることがIT技術以外のことが増えてきた。
学びたいジャンルとして、データビジュアライゼーションや技術的ライティングを学びたい。伝わりやすい資料作りをしていくことが7月の目標。
それから会社の研修でロジカルシンキングも学ばないといけない。これはまだよくイメージが掴めていないので書籍等を読んでみようと思う。
とにかく作りながら学んできたが、基礎が足りてないと感じているので5月から開発の基礎から学び直しているが、これはかなり良かったと思うので今月も引き続き勉強していきたい。
7月勉強すること
技術系
・Webアプリ開発基礎
資格
・応用情報
仕事関連
・技術文書
・データビジュアライゼーション
あとは、できたら仕事で使わない言語を趣味としてやってみたい…
setTimeoutとかsetIntervalのコールバック関数に自前の引数を渡したい
コールバック関数とは
引数として渡される関数のこと。
他の関数の引数として渡して、他の関数の処理のタイミングで実行される関数。
こういうの
とかこういうの ※コールバック関数を変数に入れて、引数として渡している
です。
関数に括弧( )があるときとないときの違い
setIntervalのコールバック引数に関数を渡そうとしてありがちなのが、実行結果を引数に渡してしまうこと。
こういう感じ
これだと、5秒後ではなくJS読み込みタイミング時にしか実行されない。
理由
関数の横に括弧( )を入れると関数が実行されるため。
上記の書き方だとJSが読み込まれた段階でalertmsgが実行されてしまい、引数にはコールバック関数ではなく実行結果が渡っている形になる。
そのため、コールバックの関数に引数がない場合は
関数が引数として渡されているだけで、実行はされていない。実行タイミングはsetTimeoutに設定された時間になるため5秒後に実行される。
どう書くか 案①コールバック関数に無名関数を渡してその中に引数を渡したい関数をいれる
どう書くか 案②コールバック関数の戻り値に引数を渡したい関数をいれる
これでいけます。
JSの関数を実行したいときに括弧( )を付けるときとつけないときの違い
括弧( )を付けるとき
こういう状態のとき
前提:関数の横に括弧( )を入れると関数が実行する。
そのため、ブラウザがこの箇所を読み込んだ時に処理が実行する。
括弧( )を付けないとき
こういう状態のとき
前提:onkeydownとは「何がキーが押されたとき」のイベントハンドラ。
onkeydownにstartいう関数を代入しておくことで、「何がキーが押されたとき」に代入した関数が実行される。
ちなみに
こう書くとどうなる
関数に括弧( )をつけると実行になるため、onkeydownに対して、start関数が実行したものを登録している状態になる。
つまりJSファイル読み込み時にstart()が実行され、その時点での実行結果がonkeydownに代入されてしまう。
onkeydownに対してイベントが発火したときに関数を実行したい場合は、関数のみを登録するようにする。