2012-05-13 9 views
1

+()このメソッドを使用して関数または値を返すのはなぜですか?私は、関数を返すために、このメソッドを使用する必要がありますなぜ私は思ったんだけど

clusters.prototype.get_local_storage_data = function(data_key) { 
    return +(this.localStorage.getItem(data_key) || 1); 
}; 

何をするのか、なぜそれを使用していますか?関数を返す良い方法はありますか、関数が何を得るかはnullですか?

答えて

4

数値を入力する前に、数値を強制的に数値にします。+上記の場合、データキーは数字(見つかった場合)に変換されるか、数字1が返されます。いずれにしても、結果は数値に変換されます。

+null; // 0 
+"3.14"; // 3.14 
+1;  // 1 

それだけで出力が何であるかに関係なく、あなたがnumberを返すされることを保証しています。

typeof +"123" // "number" 

それは実装の道だけで罰金に見える、と変更する必要はありません -

+1

、それは返される値は実際には数あるので、私の場合には便利になる、と常に数になり、少なくともそれは私がそれがあることを期待するものです。 – Roland

+0

@Roland: 'getItem'は文字列を返します:http://dev.w3.org/html5/webstorage/#storage-0 –

+0

私はそれを知っていますが、私が保存しているものは数字なので、 JSON.parse() 'これは私が格納したものと同じです。私は 'JSON.stringfy()'を使っているので、オブジェクトまたは配列であってもかまいません。または私は間違っていますか? – Roland

0

+は数に結果をキャストすることがあります。

0

+は戻り値が数値であることを確認しているだけです。そうでない場合は、1trueとなり、1番ではありません。それはのためのショートカットです:

私は今見る
Number(expression) 
関連する問題