ホームページ  >  に質問  >  本文

unknown をプロパティ キーとして使用すると、結果が unfine になることが保証されますか?

変数を介してオブジェクトのプロパティを取得する場合:

リーリー

someField (文字列) が 未定義 (初期化されていない文字列値の結果である可能性があります) である可能性があります。私の実験によると、考えられるすべてのタイプのオブジェクトについて、結果は 未定義、つまり次のようになります。 リーリー

これはよく知られている動作ですが、信頼できますか?関連するドキュメントに何かが見つからないようです。代わりに、上記を

に書き換えることです。 リーリー

しかし、プロパティ

unknown にアクセスしようとするたびに unknown が返されることが保証されているなら、私は簡潔な方法を本当に好みます。

P粉504920992P粉504920992276日前463

全員に返信(1)返信します

  • P粉340980243

    P粉3409802432024-01-17 12:46:19

    いいえ、obj[未定義] にアクセスしても、必ずしも unknown が返されるわけではありません。プロパティ名として使用される他の値と同様に、unknown は (シンボルでない限り) 文字列にキャストされるため、実際には「unknown」という名前のプロパティにアクセスします。 obj[未定義] は、obj["未定義"] または obj.unknown と同等です。そのようなプロパティが存在する場合、たとえば obj = {unknown: true};.

    の場合、プロパティ値が返されます。

    本当に書くべきです

    リーリー

    If someField: 未定義 |String

    返事
    0
  • キャンセル返事