うさのJavaScript講座

トップへ
うさのJavaScript講座式・変数・オブジェクト
式について
式とは、普段利用する数式とか、値を返したりするものもそうですが、文字列を連結するものも式といいます。
式は、演算子の優先順位に従って計算されます。

(1 + 2) / 3 も式ですし、
a && b も式です。

条件演算式?:の種明かし (質問BBSでよくあった質問より)
条件式 ? TRUEの場合の処理 : FALSEの場合の処理
これは、条件式がtrueの場合、?以降の処理を実行し、そうでない場合(falseの場合)は:以降の処理を実行します。

たとえば、
A == 0 ? B : C;
という式があるとすると、これは
if (A == 0)
{
//Bの処理;
}
else
{
//Cの処理;
}
と全く同じことを意味します。一行で簡潔に書いた場合に便利なのがこの?:です。
以下はサンプルです。
お元気?
<script language="javascript">
function buttonClick()
{
document.フォーム名.リスト名.value == "元気です" ? alert("Great!!!") : alert("TakeCare...");
}
</script>
変数とは?
変数というのは、仮に置く値のことです。算数では、y = 2x と書くと、このyやxが変数となりますね。
JavaScriptでは、変数名に、英数字と_(アンダースコア)を利用できます

JavaScriptの変数は、大文字小文字を区別するので、variableUsagiとvariableUSAGIという変数は、別のものだと認識します。宣言は、varで宣言します。省略可能な場合もあります。

変数の例 (OKとNG)に分けて記載してみましょう。
<OK> var variableUsagi_Before;
<OK> var variableUsagi_Before_2;
<OK> var countUSAGI;
<NG> var 3rd; (英数字は使えるって?ごめんなさい、先頭には使えません)
<NG> var #Before; (_以外の記号は使えません)

変数スコープ
変数スコープは、その変数がどの範囲にわたって有効か、と示すことです。
スコープ、めがね、とでも言いましょうか。顕微鏡はmicroscopeといいますし、波形をみるのもオシロスコープやシンクロスコープっていいますしね。
例を見てみてください。どの範囲に変数が有効かチェックできます。

<script language="javascript">
<!--
var nScope1 = 0;
var nScope2 = 0;
function Scope()
{
var strMsg;
var nScope2 = 1; //再定義してみました。
nScope1 += 1;
nScope2 += 1;
strMsg = "Scope1=" + nScope1 + " , Scope2=" + nScope2;
document.forms["frmScope"].elements["txtAns"].value = strMsg;
}
-->
</script>
それでは、この関数を実行してみましょう。
nScope2は関数の中で再定義し、呼び出されるたびに1となります。このサンプルを拡張し、関数外でのnScope1とnScope2を表示してみてください。
きっと関数内の値とは異なっていることに気がついてもらえるでしょう。
関数内で有効なものを「ローカル」、関数外でも有効なものを「グローバル」といいます。
似たものをC,C++,でも利用し、VBでもプライベートやパブリックと宣言しますね。

リテラル
変数、浮動小数点数、文字列、真意値の型データの表記法をリテラルといいます。
表記 内容・注意事項
整数 123,-123,0xff 8進数、10進数、16進数が利用できます
浮動小数点数 2.3e-2, 3.14159 少数、e
文字列 "hello",'usausa!' "の中に"を入れる場合は\"と記述すると認識してくれます(いわゆるエスケープシーケンスです)
真偽値 true, false
null null 値なしという意味です
NaN NaN nullとは違い、値を評価できないとき(0の割り算や-1のルートなど)の値でNot a Numberを意味します

配列
配列は、変数が列になったようもので、旧うさのJavaScript講座メルマガでは、"電車のようなもの"と書かせていただきました。
たとえば、arrayUsagi[10]はarrayUsagiという配列変数の9番目(0からスタート)を指しています。
JavaScriptの配列は、Arrayで宣言します。
HPで画像がころころ変わったり、音楽がかわったり、おみくじがあったり、そのように同じ変数に沢山のデータを格納するのに便利なので、ぜひご利用ください。
<script langage = "javascript">
function Input(typeIndex)
{
arrayAnswer = new Array();
arrayAnswer[0] = "うん、わかった!";
arrayAnswer[1] = "わからない・・・"
arrayAnswer[2] = "どっちでもない";
document.forms["frmAnswer"].elements["txtSelect"].value = arrayAnswer[typeIndex];
}
</script>

オブジェクト
オブジェクトって、あのオブジェクト指向!?とかたく考えてしまうと、ぜんぜん楽しくないので、ここを理解するとたのしいサイトが作成できるようになってくる!と思い込んでください。
オブジェクトとは、まさに部品ひとつひとつを指し示すものです。
JavaScriptでは、ブラウザ枠部品をWindow、画面をDocument、その中のコンテンツ、画像やフォームそれぞれにオブジェクト名が決まっています。
メソッドやプロパティはこれらのオブジェクト内に存在するものと考えてみてください。

リファレンスには、メソッドやプロパティも含んでいますが、オブジェクトも入っています。どんなメソッドがどのオブジェクトにくっついているのか、を少しづつみていけば、デバッグが必要なときにも役立つと思います。
↓リファレンスへ↓
文章内容記載日:2000/06/01
最終更新日: 2006/10/19