[解決済み] number(x)とparseFloat(x)はどっちがいい?
質問
どちらが良いですか?
number(x)の代わりに+xが使えるので、数バイトを削るためだけに聞いています。parsefloatはもっと良いことをするのでしょうか?
どのように解決するのですか?
parseFloatとNumberの違いについて
parseFloat
/
parseInt
は文字列をパースするためのものであり、一方
Number
/
+
は数値を強制的に指定するためのものです。両者の挙動は異なる。しかし、まず、どこで同じ動作をするのかを見てみましょう。
parseFloat('3'); // => 3
Number('3'); // => 3
parseFloat('1.501'); // => 1.501
Number('1.501'); // => 1.501
parseFloat('1e10'); // => 10000000000
Number('1e10'); // => 10000000000
つまり、標準的な数値入力である限り、違いはないのです。しかし、入力が数字で始まり、他の文字を含む場合。
parseFloat
は文字列から数字を切り捨てますが
Number
を与える。
NaN
(数字ではありません)。
parseFloat('1x'); // => 1
Number('1x'); // => NaN
さらに
Number
は16進数の入力を理解するのに対し
parseFloat
を使用しません。
parseFloat('0x10'); // => 0
Number('0x10'); // => 16
しかし
Number
は、空の文字列や空白だけを含む文字列で変な動作をします。
parseFloat(''); // => NaN
Number(''); // => 0
parseFloat(' \r\n\t'); // => NaN
Number(' \r\n\t'); // => 0
全体として、私は
Number
の方がより合理的なので、私はほとんどいつも
Number
個人的には(そして、JavaScriptの内部関数の多くで
Number
も同様です)。もし誰かが
'1x'
を入力したかのように扱うのではなく、エラーを表示するのが好ましいと思います。
'1'
. 私が本当に例外を設けるのは、スタイルを数値に変換するときだけで、その場合は
parseFloat
のような形でスタイルが来るので便利です。
'3px'
を削除したいのですが、その場合は
'px'
の部分のみを取得し
3
を見つけることができます。
parseFloat
があります。しかし、実際にどれを選ぶかはあなた次第で、どのような形式の入力を受け入れるかもあなた次第です。
なお、単項の
+
演算子を使うのと全く同じです。
Number
を関数として使用します。
Number('0x10'); // => 16
+'0x10'; // => 16
Number('10x'); // => NaN
+'10x'; // => NaN
Number('40'); // => 40
+'40'; // => 40
だから私は通常
+
を短くします。何をするのかさえわかっていれば、読みやすいと思います。
関連
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSアレイループと効率解析の比較
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
JavaScriptの配列共通メソッド解説
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み] 期待される代入または関数呼び出し: 未使用式なし ReactJS
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
[解決済み] [Solved] 数字から重要でない末尾のゼロを取り除く?