JavaScript
JavaScriptとは
HTML内要素の動的書き換えができるスクリプト言語です。
JavaScriptを使用することで、WEBサイトのユーザーインタ-フェイスを格段に向上させることができます。
PerlやRuby,PHPなどのサーバ側で動くプログラムと違い、レンタルサーバの環境に左右されにくいので多くのwebサイトで活用できます。
また、サーバ側で動くプログラムと非同期通信を行い、インターフェイスの構築を行うものをAjax(Asynchronous JavaScript + XML)と呼びます。
JavaScriptとHTMLを関連付ける
外部jsファイルを呼び出す
この方法だと同じJavaScriptを全てのページに適用できるのでカスタマイズが簡単です。<script type="text/javascript" src="/js/script.js"></script>
HTML文書に直接scriptタグを書く
<script type="text/javascript"><!--
num1 = 2 + 3;
document.write(num1);
//--></script>
出力
文字列を出力
この方法は静的な出力なので、イベントで変更することは出来ない。
DOM制御
動的にWEBサイトの情報を書き換えることが出来る。
// onclick="jsSampleDom()" でイベント起動
function jsSampleDom(){
document.getElementById('jssample').innerText = "スイーツ";
}
厨二病
アラートを表示
条件分岐
var i = 1;
if(i == 1){
document.write("OK");
} else {
document.write("NO");
}
繰り返し
for(i=0;i<10;i++){
document.write("○" + i);
}
配列制御
配列の宣言
var ary = [1,2,3,4,5];
配列の長さを求める
ary.length;
配列を連結する
var ary1 = [1,2,3,4,5];
var ary2 = [6,7];
var ary3 = [8,9,10];
var resultArray = ary1.concat(ary2, ary3);
高階関数を使って配列内を繰り返し処理する
var ary1 = [1,2,3,4,5];
var resultArray = ary.map(function(n){ retrun n+1;});
フィルタ処理する
1番目の引数はコールバック関数、2番目の引数はコールバック関数内でthisとして指定するオブジェクト
IE6,IE7では動作しない
var ary1 = [1,2,3,4,5];
var resultArray = ary.filter(function(ele, index, array){
if(ele < this){
return true;
} else {
return false;
}
}, 0);
数値制御
計算しよう。
- 算術演算子
- switch文での条件分岐
- フォームの内容を読み込む・書き込む
function calculator(){
var a = parseInt(document.calc.num1.value);
var b = parseInt(document.calc.num2.value);
var n = document.calc.cal.value;
var c = 0;
switch (n){
case "+":
c=a+b;break;
case "-":
c=a-b;break;
case "*":
c=a*b;break;
case "/":
c=a/b;break;
case "%":
c=a%b;break;
}
document.calc.num3.value = c;
}
文字列制御
文章を加工しよう。
部分取り出し
分割
var string = "2008/04/01";
document.write(string);
ary = string.split("/");
document.write(ary[0] + "年" + ary[1] + "月" + ary[2] + "日" + "
");
文字列置換
var string = "犯人はおまえだ";
document.write(string + "
");
string = string.replace("おまえだ","ヤス");
document.write(string + "
");
日付情報の取得
タイマと再帰呼び出し と組み合わせてリアルタイムに現在時刻を表示する時計
残念ながらJavaScriptにはsprintfのような文字列整形機能はない。
ページ読み込み時に自動で時計を起動したいときは <body onload="event()"> のように記述する。
function tokei(){
var dd = new Date();
var yy = dd.getYear();
var mm = dd.getMonth()+1;
var dt = dd.getDate();
var dy = dd.getDay();
var hh = dd.getHours();
var mi = dd.getMinutes();
var ss = dd.getSeconds();
d = yy + "-" + mm + "-" + dt + " " + hh + ":" + mi + ":" + ss;
document.date.show.value = d;
setTimeout("tokei()",1000);
}
数学関数
function getRand(){
alert(Math.random());
}
document.write("円周率: " + Math.PI + "
");
n = 60; //角度
rad = 30 / 180 * Math.PI; // ラジアン単位に
document.write("sin: " + Math.sin(rad) + "
");
document.write("cos: " + Math.cos(rad) + "
");
ロケーション情報の取得
document.write(
window.location + "
" +
window.location.protocol + "
" +
window.location.host + "
" +
window.location.hostname + "
" +
window.location.port + "
" +
window.location.pathname + "
" +
window.location.search + "
" +
window.location.hash + "
"
);
ブックマークレット
外部読み込みを利用して、ブックマークレットを作成する
http://d.hatena.ne.jp/murky-satyr/20090121/1232326025JavaScriptライブラリ
jQuery
JavaScriptの基礎を覚えたら、別ページ記載のjQueryを使おう!
prototype.js
http://www.prototypejs.org/script.aculo.us
http://script.aculo.us/S5
A Simple Standards-Based Slide Show System
JavaScriptでWEBをプレゼンテーションのように!
これでパワーポイントとか必要ありません。
http://meyerweb.com/eric/tools/s5/右クリックメニュー禁止
ユーザーの利便性を奪う上に、ソース参照禁止やコピペ禁止にしても窓の外から「ソースをみる」で突破できるので意味のない機能。
非推奨ですが、頭の悪い人が当機能を強制してきたのきの参考用に
$(document).bind("contextmenu",function(event){
return false;
});