理解して使用しないと意図しないバグを生む原因になります。厳密には関数ではなく言語構造ですが便宜上関数と呼びます。)よく言われる話ですが、改めてまとめてみたいと思います。未定義の変数に対して使用しても警告がされないという特別な性質があり、変数名のタイプミスに気がつけなくなってしまいます。以下のようなケースです。関わらず「これは空配列です」と出力されてしまいます。抜けておりタイプミスしているからです。判定の基準が緩い関数のため、よく理解した上で使用しないと意図しないバグを生んでしまうリスクがあるということです。使用したくなったとき、なぜ使用したいのかを改めて考えてみるといいと思います。使わずにコーディングすることも可能です。使用しなくても済むかどうかを検討してみることは良いことです。調べられるので安全です。調べられるのでおすすめです。事前に変数を定義するよう心がけてコーディングすれば、大抵の場面で未定義かどうかを調べなくても済むはずです。使用するほうが安全だと思います。使用した場合であっても変数名のタイプミスに気がつけなくなる危険性があることは認識しておいた方がいいです。