2007年9月11日火曜日

原則「プログラムの流れを制御するときには{...}で囲むようにしましょう。」

条件文のようにプログラムの流れを制御するときには、条件が成立したときに処理対象となる文をいつも{...}で囲むようにしましょう。

if ((fieldsSet & FIELD_A) && (fieldsSet & FIELD_C)) {
  alert("フィールドAとCがセットされている");
}

プログラムを読みやすくするためには、{...}の中の文を字下げします。

JavaScriptの「圧縮」

JavaScriptの「圧縮」を、以下のサイトでできます。
A JavaScript Compressor

原則「文の終わりに『;』を付けること」

文の終わりには必要はなくとも明示的に『;』を付けましょう

2007年9月7日金曜日

NullとUndefined

null変数とは、定義されたが、まだ値が代入されていない状態の変数。
undefinedとは、変数は宣言されたがまだ初期化されていない状態。

URLエンコーディング

JavasScriptには、URLエンコーディングする関数がある。
  • escape / unescape ; ASCII文字しか使えない
  • encodeURI / decodeURI ; ASCII以外の文字コードのエンコードも可能
  • encodeURIComponent / decodeURIComponent ; 「&」 や「+」や「=」もエンコードする。Ajaxの操作に使われる。

原則「キーワード var を使って定義しましょう」

スコープ(グローバルか、ローカルか)にかかわらず、どんな変数も必ずキーワードvarを使って定義しましょう。そして、これを将来にわたてずっと続けましょう。

開発環境

Firefoxには、以下の環境があります。
  • JavasScriptコンソール(default)
  • DOMインスペクタ(default)
  • Firebug(plug-in)

原則「HTMLのコメント文字列でJavasScriptのコードを囲まない」

JavasScriptを「隠す」ことを目的にHTMLコメントは使わない。JavasScriptを理解しないブラウザは遠い過去のものとなりました。

原則「外部のJavaScriptファイルに入れる」

可能ならば、JavaScriptコードの全体を外部のJavaScriptファイルに入れましょう。

<script type="text/javascript" src="somejavascript.js"></script>

原則「CDATAセクションを使う」

DOCTYPEとしてXHTMLを指定する場合は、埋め込み型のJavaScriptブロックをCDATAセクションで囲み、さらにCDATAセクションをJavaScriptのコメントを使って「コメントアウト」します。ウェブページはすべてXHTMLに準拠するようにし、CDATAを使いましょう。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>JavaScript Code Block Example</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
//<![CDATA[

var dt = Date();
var msg ='<h3>Hello, World! Today is ' + dt + '</h3>';
document.writeln(msg);

//]]>
</script>
</body>
</html>

ルール「JavaScriptのコードをheadに入れるべき場合、bodyに入れるべき場合」

  1. ページがロードされていく課程でJavaScriptがウェブページコンテンツを動的に作成する場合は、JavaScriptをbody部に入れる。
  2. 関数内で定義され、イベントで使用されるJavaScriptは、head部に入れる。これによりbody部の前にロードされる。
注意)DOMを使って新規コンテンツを生成し、ページ要素に付随させることにより、body部にJavaScriptのコードを入れる必要は全くなくなる。