条件文のようにプログラムの流れを制御するときには、条件が成立したときに処理対象となる文をいつも{...}で囲むようにしましょう。
if ((fieldsSet & FIELD_A) && (fieldsSet & FIELD_C)) {
alert("フィールドAとCがセットされている");
}
プログラムを読みやすくするためには、{...}の中の文を字下げします。
2007年9月11日火曜日
2007年9月7日金曜日
URLエンコーディング
JavasScriptには、URLエンコーディングする関数がある。
- escape / unescape ; ASCII文字しか使えない
- encodeURI / decodeURI ; ASCII以外の文字コードのエンコードも可能
- encodeURIComponent / decodeURIComponent ; 「&」 や「+」や「=」もエンコードする。Ajaxの操作に使われる。
原則「キーワード var を使って定義しましょう」
スコープ(グローバルか、ローカルか)にかかわらず、どんな変数も必ずキーワードvarを使って定義しましょう。そして、これを将来にわたてずっと続けましょう。
原則「HTMLのコメント文字列でJavasScriptのコードを囲まない」
JavasScriptを「隠す」ことを目的にHTMLコメントは使わない。JavasScriptを理解しないブラウザは遠い過去のものとなりました。
原則「外部のJavaScriptファイルに入れる」
可能ならば、JavaScriptコードの全体を外部のJavaScriptファイルに入れましょう。
<script type="text/javascript" src="somejavascript.js"></script>
<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>
<!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に入れるべき場合」
- ページがロードされていく課程でJavaScriptがウェブページコンテンツを動的に作成する場合は、JavaScriptをbody部に入れる。
- 関数内で定義され、イベントで使用されるJavaScriptは、head部に入れる。これによりbody部の前にロードされる。
登録:
投稿 (Atom)