[解決済み] ある数字が負であるかどうかを調べるには?
質問
ある数字が負であるかどうかを調べたい。私は検索している 最も簡単な方法 ということで、定義済みのJavaScript関数がベストだと思いますが、まだ何も見つかっていません。これは、私がこれまでに持っているものですが、私はこれが良い方法だとは思わない。
function negative(number) {
if (number.match(/^-\d+$/)) {
return true;
} else {
return false;
}
}
どのように解決するのですか?
このチェックを行うための関数を書く代わりに、この式を使うことができればよいのです。
(number < 0)
Javascriptはこの式を、まず左辺を数値に変換してから0より小さいかどうかを確認することで評価します。これは、あなたが望んでいたことだと思われます。
仕様と詳細
の動作は
x < y
で指定されている
§11.8.1 小さめの演算子(
<
)
を使用します。
§11.8.5 抽象的な関係比較のアルゴリズム
.
の両方がある場合、状況は大きく異なります。
x
と
y
は文字列ですが、右辺はすでに数字なので
(number < 0)
であるため、比較は左辺を数値に変換して数値的に比較することを試みる。左辺を数値に変換できない場合、結果は
false
.
正規表現に基づくアプローチと比較すると、異なる結果が得られるかもしれないことに注意してください。しかし、何をしようとしているかによって、いずれにせよ正しいことをすることになるかもしれません。
-
"-0" < 0
はfalse
という事実と矛盾しない。-0 < 0
はまたfalse
(を参照してください)。 符号付きゼロ ). -
"-Infinity" < 0
はtrue
(無限大を認める) -
"-1e0" < 0
はtrue
(科学的記数法のリテラルが使用できます) -
"-0x1" < 0
はtrue
(16進数のリテラルを受け付けます) -
" -1 " < 0
はtrue
(いくつかの形式の空白文字が許されます)
上記の例のそれぞれについて、regexメソッドは逆の評価をします(
true
ではなく
false
を使うこともできます。)
参考文献
参照
付録1 条件演算子
?:
また、この形式のステートメントがあることは言うまでもありません。
if (someCondition) {
return valueForTrue;
} else {
return valueForFalse;
}
は、3項/条件付きで使用するようにリファクタリングすることができます。
?:
演算子 (
§11.12
) を使って単純に
return (someCondition) ? valueForTrue : valueForFalse;
のイディオム的な使い方
?:
は、コードをより簡潔で読みやすくすることができます。
関連する質問
付録 2: 型変換関数
Javascriptには、様々な型変換を行うために呼び出すことができる関数があります。
以下のようなものです。
if (someVariable) {
return true;
} else {
return false;
}
を使ってリファクタリングすることができます。
?:
演算子を使って
return (someVariable ? true : false);
しかし、これをさらに簡略化して
return Boolean(someVariable);
これは
Boolean
を関数として呼び出します (
§15.16.1
) を使って,望ましい型変換を行うことができます。同様に
Number
を関数として呼び出すこともできます (
§15.17.1
)を使って数値への変換を行うことができます。
関連する質問
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] オブジェクトが配列であるかどうかを確認するにはどうすればよいですか?[重複]。
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] 三元化するのか、しないのか?[クローズド]
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法