0

typeof を使用して、変数が未定義かどうかを判断しようとしています。

function reset_textarea(reset) {

if (typeof(reset) != 'undefined') {
   ...do stuff
  }

}

私はそれを次のように呼んでいます:

reset_textarea('hello');

うまくいかず、その理由がわかりません。if ステートメントを削除すると、関数は正常に起動するため、変数が設定されているかどうかをテストする方法に問題があるようです。何が起こっているのですか?

4

2 に答える 2

1

さて、typeof("hello")(文字列の型) が定義されています。それはStringです。typeof(hello)(引用符がないことに注意してください)必要なものです。これはうまくいきますか?

if(typeof(window[reset]) !== 'undefined') {
  //...
}

hello変数 ( ) と文字列 ( )の違いを理解する必要があります"hello"window["hello"]は と同等ですが、window.helloより柔軟です。

于 2012-08-19T21:44:22.493 に答える
1

で指定した名前のプロパティの存在をテストできますwindow

function reset_textarea(reset) {

    if (typeof(window[reset]) !== 'undefined') {
       // ...do stuff
    }

}
于 2012-08-19T21:44:33.043 に答える