勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

setTimeoutの注意点

      2014/07/03

javascriptのsetTimeoutにて変数を用いた際に

想定外の挙動を起こす場合があるとのこと。

参考を聞いた上で検証するも再現できず。

/*これは通る
setTimeout(function(){
alert('test')
},2000);
*/
/*これも通る
function alert_test (str) {
alert(str);
}
alert_test('hogehoge');
*/
//これは……通った。
function alert_test(test) {
var a = test;
setTimeout(function(){
alert(a);
},1000);
}
alert_test('hogehoge');

確認する。

//2013/05/16追記

function内で複数のsetTimeoutを用いた場合にエラーが発生した。

setTimeout内で変数を用いる場合はグローバル変数を使用する。

 - javascript

  関連記事

javascript_logo_unofficial-300x300
JavaScriptでdisplay:none/blockの切り替え

jQueryだとhide/show使うか、もしくは toggleだけでいいけどJ ...

javascript_logo_unofficial-300x300
javascriptでメモリ開放

今まで考えたこと無かったけどjavascriptを使う際は メモリ消費に気をつけ ...

javascript_logo_unofficial-300x300
javascriptでのエラーログ

PHPでのエラーログ取りが思いのほか便利だったので JSについても簡単にログ取り ...

javascript_logo_unofficial-300x300
javascriptのfor文で負荷軽減

javascriptで配列の数だけループをまわす際、 for (i=0; i&l ...

110126-HTML5_Logo
HTML、javascriptソースの暗号化

サーバーサイドはソースを見られないけどクライアントサイドはソースを見られるので、 ...

javascript_logo_unofficial-300x300
JavaScriptで連想配列を数値でソート

数字の大きい順でソートしたかったんだけど、 色々調べてhash.sort云々やっ ...

javascript_logo_unofficial-300x300
サイトにHTMLエディタ(WYSIWYG)を導入する方法

シンプルで導入が簡単、且つ日本語化されているウィジウィグを探しており、良さそうな ...

javascript_logo_unofficial-300x300
IEでjavascript関数の初期値

あるJavaScriptの関数でchromeやfirefoxは正常に動いたけどI ...

javascript_logo_unofficial-300x300
alert後にページ遷移

JavaScriptのalertが閉じたらページ遷移させてほしいと言われ、con ...

javascript_logo_unofficial-300x300
javascriptで実行時間の測定

var time_test = function(){ var x = 1; f ...