この演算子は、型もチェックします。従って、値の自動変換は行われません。
<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>