1

なぜこのメソッドを使用して関数を返す必要があるのか​​ 疑問に思っています:

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

はそこで何をし、+()なぜそれを使用するのですか? 関数が取得したものが null の場合、関数または 1 を返すより良い方法はありますか?

4

3 に答える 3

4

値の前に を使用する+と、その値が強制的に数値になります。上記の場合、データ キーは数値に変換されるか (見つかった場合)、数値 1 が返されます。いずれにせよ、結果は数値に変換されます。

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

出力が何であれ、number.

于 2012-05-13T07:03:13.450 に答える
0

+結果を数値にキャストするためにあります-

typeof +"123" // "number"

実装方法は問題ないように見え、変更する必要はありません。

于 2012-05-13T07:03:18.570 に答える
0

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

Number( expression )
于 2012-05-13T07:03:28.690 に答える