scoutで Java heap space エラーが出たときの対処法
無名関数と即時関数
無名関数と即時関数について分からずに使っていたので調べてみました。
無名関数
普通の関数
function hoge(){
}
無名関数
var hoge = function (){
};
普通の関数が、function文
無名関数が、function式
となります。
function式では、関数名が省略可能なので、関数名を書いていません。
ということで無名関数とよばれています。
即時関数
関数定義と関数呼び出しをまとめることができます。
(function test(){
alert('test');
})();
この関数は、以下をまとめたものです。
//関数定義
function test(){
alert('test');
}
//関数呼び出し
test();
一度しか使わない関数を実行する時などに使います。
window.onload と$(document).ready の違い
window.onloadの場合の記述は以下です。
<script>
window.onload = function() {
alert("test");
}
</script>
$(document).readyの記述は以下です。
$(document).ready(){
alert("test");
}
window.onload
alert("test");は、HTML文書が完全にロードされたあとで実行されます。 画像などのデータをすべて読み込んでから実行されます。
$(document).ready
ブラウザがDOMツリーの準備を完了した時に呼び出されます。 画像などのデータの読み込みを待たずに実行されます。
ということで順序は、$(document).readyが先に実行されて、window.onloadが後に実行されます。
visibility:hiddenとdisplay:noneの違い
htmlタグを非表示にする際に、当たり前のようにつかっていたvisibility:hiddenか、display:noneですが 違いがありましたのでまとめておきます。
visibility:hidden
指定した個所は非表示になりますが、ボックスの領域は存在したままです。
要素が見えなくなっただけなのでスペースは存在は残ったままになります。
display:none
指定した個所は非表示になり、ボックスの領域もなくなります。
ボックスがあった領域は詰めて表示されるようになります。
preventDefaultとreturn falseの違い
知らずにprevetnDefaultを使っていたので違いについて調べてみました。
jQueryはDOM要素を、ツリー形式で持っています。 クリックされた時に、親要素が aタグをクリックすると子要素から親要素にも伝わります。 その時の挙動の違いが以下です。
preventDefault
親要素へ伝達をしつつ、aタグのリンク機能を無効化する。
return false
return false;を返したあと、aタグ自体のリンク機能を無効化し、
そのクリックイベントを親要素へ伝達しない。
width:autoとwidth:100%
最近、レスポンシブデザインの勉強をしてる際にwidth:autoとwidth:100%の違いが分からなくて調べてみました。
基本的には、width:autoとwidth:100%とも親要素の横幅にあわせるものです。
違いは、paddingやborderを指定したときに現れます。
width:autoの時は、左右のpaddingを含んで幅100%になります。
width:100%は左右のpaddingを含まずに100%になります。
cssでは、widthはデフォルトだとwidth:autoが指定されるようです。
レスポンシブデザインのコーディングで使うことが多いと思います。