4. 演算子
この演算子は
==,
!=
と違って型も一致するかどうかを調べます。
すなわち値の自動変換が行われません。
alert("1" === 1); //false
alert(1 === 1.0); //true
alert("0" + 1 !== "01"); //false
delete 演算子はオブジェクトのプロパティや
Array オブジェクトの要素を削除します。
成功すれば
ture を返します。
var ary = new Array(1, 2, 3, 4);
//3番目の要素を削除
alert(delete ary[2]); //true
alert(ary[1]); //2
alert(ary[2]); //undefined
オブジェクトそのものは削除できせん。
var i = 1;
alert(delete i); //false
var ary = new Array(1, 2, 3);
alert(delete ary); //false
ただし、
var を使って宣言されていなければ削除できます。
i = 1;
alert(delete i); //true
ary = new Array(1, 2, 3);
alert(delete ary); //true
あるオブジェクトが指定したクラスのインスタンス(実体)
であるかどうかを調べます。
var ary = new Array();
alert(ary instanceof Array); //true
alert(ary instanceof Object); //true
alert(ary instanceof String); //false
Object は Array のスーパークラスになっているということのようです。
オブジェクトのタイプを調べます。
タイプには
number,
string,
boolean,
object,
function があります。
オブジェクトが定義されていない場合は
undefined
が返ります。
var a = 1.2;
alert(typeof a); //number
var b = "ほえ";
alert(typeof b); //string
var c = (1 < 2);
alert(typeof c); //boolean
var d = new Array(1, 2, 3);
alert(typeof d); //object
var e = new Function("x", "y", "return x + y");
alert(typeof e); //function
alert(typeof f); //undefined
void を使うと、
本来値を返すところでも返さなくて済むことができます。
例えば下のリンクとテキストボックスは次のようなコードだとします。
<FORM NAME="form1">
<A HREF="javascript:document.form1.text1.value = 'ほえほえ'">押してね☆</A>
<INPUT TYPE="text" NAME="text1">
</FORM>
要するにリンクをクリックするとテキストボックスに
「ほえほえ」という文字列を入れたいんですが、
同時にこのスクリプトは「ほえほえ」という文字列を値として返すので、
それに応じてページがジャンプしてしまいます。
それを避けるために、次のように
void を使います。
<FORM NAME="form2">
<A HREF="void(javascript:document.form2.text1.value = 'ほえほえ')">
押してね☆</A>
<INPUT TYPE="text" NAME="text1">
</FORM>
void を使うと値を返さなくて済むようになるので、
ジャンプせずにテキストボックスに値が収まります。