过去多啦不再A梦2017-07-05 10:55:08
あなたが与えたコードから判断すると、現在の使用シナリオでは文字列型に値を事前に割り当てる必要はありません。事前に設定しておかなければ失敗することはありません。
しかし、値を代入しない場合と空の文字列を代入する場合には本質的な違いがあります。つまり、変数の型が変更されます。
代入が行われていない場合は、未定義型、値が null の場合、null 型、値が空の文字列 "" の場合、string 型になります。
念のため言っておきますが、この変数の期待される結果は文字列型であるため、宣言時にその型を指定するのが安全な方法です。
指定しない場合はどうなりますか?それが時々問題を引き起こすこともあります。
この問題は主に、この変数を使用して他のデータを結合するときに発生します。これにより、暗黙的な型変換がトリガーされる可能性があり、違いを見つけることができます。
以下の通り:
リーリーそれで、結果はどうなったでしょうか? 「a」ではなく「未定義a」です。
a が null にプリセットされている場合、結果は「nulla」になります。
あなたの例では、resはそれと接合されるのではなく直接割り当てられているため、空の文字列に割り当てられていなくても影響はありませんが、お勧めできません。
別の例として、「0123456789」などの文字列も必要な場合は、0 ~ 9 の番号を結合します。 リーリー
申告しなくても大丈夫ですか?いいえ、res は数値型に変換されますが、変換後の unknown は NaN となり、最終的に得られる結果も NaN になります。これは、res に値 "" 空の文字列が割り当てられている場合にのみ正しいです。
为情所困2017-07-05 10:55:08
現在のケースは空の文字列として事前定義する必要はなく、コードを読みやすくするために削除できます
空の文字列は通常、文字列に対して条件判定操作が実行されるシナリオ、または文字列自体に対して操作が実行されるシナリオで使用されます。
最初のタイプ:
2 番目のタイプ:
リーリー曾经蜡笔没有小新2017-07-05 10:55:08
個人的には、これは作者が意図せずに行ったものだと思います...
それを解釈することに固執するなら、これは良いか悪いかのどちらかです。良い点は、res が文字列変数であることを直感的に認識できるため、可読性が向上することです。悪い点は、オブジェクトの作成と解放の余分なプロセスがあり、その損失は無視できるものではありますが、パフォーマンスの低下を引き起こすことです。