この演算子は、型もチェックします。従って、値の自動変換は行われません。
<script type="text/javascript">
function test1(){
alert( "2" === 2 ) // false
alert( 1 === 1.0 ) // true
alert( "1"+1 ) // "11"
alert( "1"+1 !== 11) // true
}
</script>
たとえば、ラジオボタンの値が改ざんされていないかなどに利用できます。
delete演算子は、オブジェクトのプロパティやArrayオブジェクトの要素を削除してくれます。成功すると true を返します。
<script type="text/javascript">
function test2(){
var a = new Array(0,1,2,3,4); // 5個の要素
var o = {}; // ver 有り
obj = new Object; // ver 無し
alert( a.length ) // 5
alert( delete a[2] ) // true
alert( a[2] ) // undefined
alert( a.length) // 5
alert( delete o ) // false
alert( delete obj ) // true
}
</script>
オブジェクトがクラスのインスタンスであるか評価します。
<script type="text/javascript">
function test3() {
var a = new Array(1,2,3,4,5);
function F1 () {};
function F2 () {};
F2.prototype =new F1();
alert( a instanceof Array ); // true
alert( F1 instanceof F1); // false
alert( F2 instanceof F2); // false
var F1Obj = new F1();
alert( F1Obj instanceof F1); // true
alert( F2 instanceof F1); // false
var F2Obj = new F2();
alert( F2Obj instanceof F1); // true
alert( F2Obj instanceof F2); // true
}
</script>
と書いてはみたものの、使い道がいまいち…。
そうだ、文字列チェックで使える!
var getElement = (function (argv){
if (typeof(argv) == "string" // argc = "test"
|| argv instanceof String) // argv = new String("test")
return document.getElementById(argv);
else
return argv; // チェックしないけどオブジェクトだと想像するものとする
});
けっこう使える演算子。以下の5通り+未定義1通り(undefined)の計6通りある。
<script type="text/javascript">
function test4() {
var n = 1.2; alert(typeof n); // number
var s = "AugusAjax"; alert(typeof s); // string
var b = (1>0); alert(typeof b); // boolean
var o = {}; alert(typeof o); // object
var f = function(){}; alert(typeof f); // function
alert(typeof u); // undefined
}
</script>
void演算子は、FORM内で、クリック時にsubmitしたくない時によくつかられていますが、これには批判の声が多数あり筆者も推奨しない。
代替えになるかわかりませんが、こんなの書いてみました。Prototype.K(x);は、引数のxを返却する関数です。そもそもFormのaction属性のスキームにJavascriptは非推奨とされている…のだが
<form name="F1" action="javascript:Prototype.K();" /> <input type="text" name="T1" value="100" /> <input type="button" value="OK" onclick="func()" /> <input type="button" value="submit" onclick="F1.submit();" /> </form>