- 締切済み
変数セットの検査
よろしくお願いします。 javascriptで変数に値がセットされているかを検査することはできますか? PHPでのissetのような関数はあるのでしょうか? 自分なりに調べたのですが見つけることができなかったので誰かわかる方がいらっしゃいましたら教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- auty
- ベストアンサー率58% (284/486)
#1 です。調べてみると undefined を論理値コンテキストで使うと、falseに変換されることが分かりました。 したがって、 if ( x == undefined ) ... は間違いで、xが宣言されているときは、 if ( x == false ) ... または if ( !x ) ... とすべきでした。ただしxが他の値をとるときも論理値をとるので、これだけでは不十分のときもあるかも知れません。 その場合は、yambejp様のご指摘のキーワードtypeofと、宣言さた変数はdeleteでは削除されないことを利用し、 var y; //var y=1; document.write( (typeof y)=='undefined' && !(delete y) ); または if ( (typeof y)=='undefined' && !(delete y) ) { document.write( "<br>yes" ); } else { document.write( "<br>no" ); } でチェックできそうです。
- yambejp
- ベストアンサー率51% (3827/7415)
issetですと#1さんの指摘されたundefinedでしょうね ただ、#1さんの書き方はプロパティの調べ方なのでオブジェクト自体を 調べる時はtypeofと合わせたほうがよいのではないでしょうか? <? if(isset($x)){ print "xはセットされている<br>";}else{ print "xはセットされていない<br>" ;} $x=1; if(isset($x)){ print "xはセットされている<br>";}else{ print "xはセットされていない<br>" ;} $x=0; if(isset($x)){ print "xはセットされている<br>";}else{ print "xはセットされていない<br>" ;} $x=""; if(isset($x)){ print "xはセットされている<br>";}else{ print "xはセットされていない<br>" ;} $x=false; if(isset($x)){ print "xはセットされている<br>";}else{ print "xはセットされていない<br>" ;} unset($x); if(isset($x)){ print "xはセットされている<br>";}else{ print "xはセットされていない<br>" ;} ?> <hr> <script> if((typeof x)!="undefined"){ document.write("xはセットされている<br>");}else{document.write("xはセットされていない<br>");} x=1; if((typeof x)!="undefined"){ document.write("xはセットされている<br>");}else{document.write("xはセットされていない<br>");} x=0; if((typeof x)!="undefined"){ document.write("xはセットされている<br>");}else{document.write("xはセットされていない<br>");} x=""; if((typeof x)!="undefined"){ document.write("xはセットされている<br>");}else{document.write("xはセットされていない<br>");} x=false; if((typeof x)!="undefined"){ document.write("xはセットされている<br>");}else{document.write("xはセットされていない<br>");} delete(x); if((typeof x)!="undefined"){ document.write("xはセットされている<br>");}else{document.write("xはセットされていない<br>");} </script>
- auty
- ベストアンサー率58% (284/486)
>>> javascriptで変数xに値がセットされているかを検査することはできますか? undefined というキーワードがあるのでこれを使います。 [例] if ( x == undefined ) ...