JavaScript_基礎文法
変数
変数の宣言
varで宣言します。JavaScriptでは、変数宣言時に型は定義できません。
数値用として宣言した変数に対して、途中から文字列を代入することも可能なので注意が必要です。
var num = 1;
num = "one"; // oneに書き換わる
変数のデータ型を調べるには「typeof」演算子を用います。
var num = 1;
console.log(typeof num) // number
num = "one";
console.log(typeof num) // string
数値型:Number
正の数、負の数。小数を扱います。
var num = 1
num = -10
num = 12.25
文字列型:String
文字列はシングルクオート( ' )かダブルクオート ( " )で囲みます。
両者は全く等価であり、どちらの場合でも「\t」や「\n」などの特殊文字を利用することができます。
他のスクリプト系言語にある,変数展開などの便利な機能はありません。
var str = "\tJavaScript\n";
var msg = '\tJavaScript\n';
真偽値型(boolean)
真性を表すtrueと虚偽を表すfalseがあります。
var onSubmit = false;
onSubmit =true;
配列
配列の宣言は以下の3種類があります。
var ary1 = [1, 2, 3]; // [1, 2, 3]
var ary2 = new Array(3); // [undefined, undefined, undefined]
var ary3 = new Array(3, 4, 5); // [3, 4, 5]
配列参照はインデックスの0からとなります。
console.log(ary1[0]); // 1
ary1[1] = 4 // [1, 4, 3]
オブジェクト
JavaScriptでは,オブジェクトを連想配列のように扱うことができます。
JSON はこの表記法を基にしています。
var a = {a: 123, b: "message"};
a['a']; // 要素の参照:123
a.b; // 要素の参照:message
a['c'] = 456; // 要素の追加
a.d = "message2"; // 要素の追加
比較演算子
比較
大小の比較は一般的な言語と同様の記述方法です。
a < b // a は b よりも小さい
a <= b // a は b よりも小さいか等しい
a > b // a は b よりも大きい
a > b // a は b よりも大きいか等しい
同値演算子
JavaScriptの同値演算子には「==」、「!=」に加えて「===」、「!==」があります。
両者の違いは比較する際に型変換を行うか否かです。
「===」は型変換を行わずに比較しますので、単純な文字列同士を比較する場合にはこちらを用います。
// 型が同じ場合
var a = 'abc';
var b = 'abc';
a == b; // true
a === b; // true
// 型が異なる場合
var c = "1";
var d = 1;
c == d; // true
c === d // false
オブジェクト比較
オブジェクトに対する比較も用意されています。
a in b // aがbオブジェクトのプロパティ名かどうか
a instanceof b // オブジェクトaがbクラスのインスタンスかどうか
制御構文
if
if中の文が1つだけの場合は 波括弧を省略することができます。
ただし、JavaScriptは動作がブラウザ依存ですので非推奨の書き方です。
if (hour >= 23) {
return;
} else if (hour == 12) {
min -= 30;
} else {
sec += 1;
}
switch
switch文は「break;」を記述しないとフォールスルーします。
var mode = 3;
switch (a) {
case 0: alert('zero'); break;
case 1: alert('one'); break;
case 2: // fall through
case 3: alert('two or three'); break;
default: alert('many!'); break;
}
while
var num = 10;
while (num <= 0) {
num--;
}
for
for文内で一時的な変数宣言することが可能です。
for (var i = 0; i < 5; i++) {
}
ブラウザによっては、「for in」文や「for each文」がサポートされています。
var obj = {a: 1, b: 2};
for each (var v in obj) {
alert(v); // => 1, 2
}
例外処理
例外処理としてtry-catch-finallyが用意されています。
throwを呼び出すと実行中の関数は即座に停止されます。
try {
throw new Error("throw error!!");
} catch(e) {
alert("catch!! : " + e.message);
} finally {
alert("finally!!");
}
Errorオブジェクト
Errorのインスタンスにはmessageというプロパティがあり、これがエラーメッセージを表します。
var err = new Error();
err.message = "エラーが発生しました。";
throw err;