2012-03-08 9 views
4

JavaScriptでは、新しく宣言された変数に一時的な値を代入することに何らかの利点がありますか?たとえば...JavaScriptでの代入による変数型宣言のメリット

var a = 0, 
    b = ''; 

// Somewhere else 
a = 5; 
b = 'Goodbye'; 

var a, b; 

// Somewhere else  
a = 5; 
b = 'Goodbye'; 

対私は宣言に変数を割り当てることにそのタイプを設定することに注意してくださいね。しかし、JavaScriptでは、これは異なる型の値を割り当てることによって簡単に変更できるので、実際にはそれを何らかの形で保護するわけではありません。

上記のメリットとデメリットは何ですか?

+1

より良い変数名は、そのタイプが何であるべきかを認識するのに役立ちます。 – pimvdb

+0

@pimvdb、彼は変数の名前には関係しませんでしたが、その変数の型に応じた値を宣言しています。 –

+1

@Ofir Baruch:良い変数名は型を含めるべきです何らかの形で、このように設定することはコードを理解する上で重要ではありません。 – pimvdb

答えて

4

私は、次の利点があると信じています。 コードの最初から、どのタイプがどのvarであるかがわかります。

欠点は、ファイルのコード行とサイズが増えることです。

2

あなたはとてもN/A、それを行うことはできませんJavaScriptの

で変数の型を宣言することの利点を。

新しく宣言された変数に一時的な値を割り当てるのに利点はありますか?

利点:

  • あなたはそれを

欠点設定に失敗した場合、後でエラー状態を回避することができます

  • 変数あなたを割り当てる過ごす時間/コード/帯域幅を使用しないでください
  • エラーはありませんconditioあなたが後でそれを設定しない場合は、テストで表示されます。
0
You have to set an initial value if you will be using any methods on the thing- 
var s='',A=[]; 

for(var i=0;i<5;i++){ 
s+=i; 
A.push(i); 
} 

それ以外の場合は、最小限の種類のドキュメントを除いて、それは不要です。

1

ここには大きな利点はありません。あなたがそれを設定するまでそれが未定義であると扱うことができれば、多くの欠点があるとは言いません。型がどのように動作するか、特に等価性に関して、同じ演算子の間で異なる型を混在させたときに起こることは、動的言語に厳密な型定義のパラダイムを置こうとするよりも重要です。

しかし、オブジェクトリテラルを宣言すると、事前にすべてのプロパティを宣言する手間が省けます。

たとえば

myObject.with.way.too.much。階層

あなたが行くにつれてこれらのプロパティを追加する予定だったら、そのチェーンのすべてのプロパティが存在するかどうかをチェックする必要があります定義されていないオブジェクトのプロパティにアクセスしようとしたために定義されています。定義されていないかどうかを確認するだけでエラーが発生します。

if(myObject && myObject.with && myObject.with.way ...//ew 

注:

だからあなたは、このようなわいせつな何かを持っていると思います私は個人的に自己文書化のものとしての機能では、フロントが、よりアップし、すべての私のvarを宣言する傾向があります。

0

あなたは未定義の変数を使用する場合、コードかもしれないブレーキや予期しない結果を得ることができます...それは既知の値を持っているかどうかをチェックし せずに誤ってそれを使用する場合、変数に値を設定する

はあなたを助けますタイプ