JavaScript
こういうコードを書くと var hoge = 0; function func1(){ console.log(hoge); } function func2(){ var hoge = 100; var func2_1 = function(){ console.log(hoge); } func2_1(); } function func3(){ var hoge = 100; func1(); } func1(); func2(); func3(…
ホイスティング よくあるプログラミング言語だと、変数を使う前に変数を宣言しておかなければなりません。 しかし、JavaScriptでは「宣言はスコープの先頭で行われる」というルールがあります。そのため、スコープ内であればどこで宣言しても「is not undefi…
JavaScriptって非同期じゃないの? 関数Aの中で関数Bを実行するプログラムを書いたとします。 function A(){ console.log('A Start'); B(); console.log('A finish'); } function B(){ console.log('B Start'); //なんか重たい処理 console.log('B finish');…
たまにですが「Uncaught RangeError: Maximum call stack size exceeded」とエラーが出るときがあります。 コールスタックのサイズが最大値を超えたよ!と怒られているわけですが、そもそもコールスタックとはなんなのでしょうか。 コールスタックとは スタ…
アロー関数を使ってみた アロー関数というのは => で関数を組むことが出来るという書き方です。 今までは、この書き方をするメリットがよくわからなかったので使っていませんでしたが、Promiseを使うときはこっちの書き方が良いという噂を耳にしたので、使っ…
音量調整機能 音量調節機能を作ったらバグりました。 JavaScriptで実数の計算をするとこの様な誤差が生じるらしいです。C++でもPythonではなかったことなので、最初見た時は何これ?って感じでした。色々試した結果、このようにすれば誤差が出なくなりました…
JavaScriptには、配列の末尾に要素を追加してくれるpush関数という便利なものがある。 だが、僕はこのpush関数を勘違いして使っていた。 僕は、空配列にpush関数を使ったら、先頭から順番に追加されて、配列が足りなくなったら要素を追加してくれる関数だと…