English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JavaScriptには数字の種類が1種類しかなく、整数と浮点数を別々に指定するものはありません。
したがって、数字はJavaScriptで小数点を含むかどうかに関わらず書き記すことができます。
var a = 25; // 小数点がありません var b = 80.05; // 小数点がありますテストをしてみて‹/›
上記の2つの状況では、データ型はどちらも数字であり、小数点が含まれているかどうかに関わらず同じです。
JavaScriptを使用して科学的指数表示法で非常に大きいまたは非常に小さい数字を短縮表示することができます。以下の例を参照してください:
let num1 = 957e8; // 95700000000 let num2 = 957e-8;// 0.00000957テストをしてみて‹/›
JavaScriptの数値は正確とされ、最大15ビット数字。これは、数値が第16ビットの後ろに四捨五入します:
let num1 = 999999999999999; // 値が変更されません 999999999999999 let num2 = 9999999999999999;// 四捨五入して 10000000000000000テストをしてみて‹/›
他の言語とは異なり、JavaScriptは整数、短整数、長整数、浮動小数点数など、異なる数値の種類を定義しません。
JavaScriptの数値は64ビット精度、これも双精度と呼ばれます。
内部表示はIEEEに基づいています。 754標準。
64ビットは符号、指数、小数の間に配置されます。以下のように表示されます:
識別 | 指数 | 分数 |
---|---|---|
1 ビット | 11 ビット | 52 ビット |
ビット 63 | ビッツ 62–52 | ビッツ 51–0 |
前の章から分かったように、+演算子は数値の足し算と文字列の結合に使用されます。
数字であれば数値を足します。文字列であれば文字列を連結します。
二つの数字を足すと、結果は数値になります:
let x = 50; let y = 10; let z = x + y; // z = 60 (数値)テストをしてみて‹/›
二つの文字列の場合、結果は文字列の連結になります:
let x = "50"; let y = "10"; let z = x + y; // z = 5010 (文字列)テストをしてみて‹/›
数字と文字列の場合、結果は文字列の連結になります:
let x = 50; let y = "10"; let z = x + y; // z = 5010 (文字列)テストをしてみて‹/›
文字列と数字の場合、結果は文字列の連結になります:
let x = "50"; let y = 10; let z = x + y; // z = 5010 (文字列)テストをしてみて‹/›
JavaScriptは左から右に表現を計算します。異なる順序は異なる結果を生み出すことがあります。
以下の例では、まず50 + 10xとyが数字であるため、加算して、60 +"30”を結合して、zが文字列であるためです:
let x = 50; let y = 10; let z = "30"; let sum = x + y + z; // sum = 6030 (文字列)テストをしてみて‹/›
一般的な間違いとして、この結果が予想されます60:
let x = 50; let y = 10; let z = "The sum is: " + x + y;テストをしてみて‹/›
上記の問題を解決するために、括号を使用できます:
let x = 50; let y = 10; let z = "The sum is: " + (x + y);テストをしてみて‹/›
JavaScriptの文字列は数字値を含むことができます。
let x = 50; // x は数字です let y = "50"; // y は文字列です
文字列が数字値を含む場合、JavaScriptで数学的表現を実行できます。
除法を実行できます:
let x = "50" / "10"; // x = 5テストをしてみて‹/›
乗法を実行できます:
let x = "50" * "10"; // x = 500テストをしてみて‹/›
冪乗演算を実行できます:
let x = "5" ** "3"; // x = 125テストをしてみて‹/›
増分を実行できます:
let x = "50"; x++; // x = 51テストをしてみて‹/›
減法を実行できます:
let x = "50" - "10"; // x = 40テストをしてみて‹/›
加法を実行できません:
let x = "50" + "10"; // x = 5010テストをしてみて‹/›
注意:二つの文字列を足すと、結果は文字列の連結になります。
JavaScriptのNaNでは、保留語は数値が有効な数値でないことを示します。
数字と非数字の値に対して数学的な演算を試みると、NaNが返されます。
var x = 50 / "oldtoolbag.com"; // x = NaN (Not a Number)テストをしてみて‹/›
ただし、文字列に数値が含まれている場合、JavaScriptを使用して数学的な式を実行できます:
var x = 50 / "10"; // x = 5テストをしてみて‹/›
グローバルなJavaScript isNaN()関数を使用して値が数値であるかどうかを確認できます:
var x = 50 / "oldtoolbag.com"; isNaN(x);// trueを返します、なぜならxは数値でないからですテストをしてみて‹/›
NaN操作で使用する変数NaNに値を割り当てると、もう一方の操作数が合法な数値であっても、以下のような値が得られます:
var x = NaN; var y = 27; var z = x + y; // z = NaNテストをしてみて‹/›
NaNは数値です;typeof NaNはnumberを返します:
typeof NaN; // will return "number"テストをしてみて‹/›
Infinity(正の無限大)または-Infinity(負の無限大)は、JavaScriptで利用可能な最大数値を超えた場合に返されます。
未定義の値に対してもこれらのことが起こります、例えば0で割るとき:
var x = 5 / 0; // 無限大を返します var y = -5 / 0; // 負の無限大を返しますテストをしてみて‹/›
技術的な言い方をすると、Infinity(正の無限大)は、数字がnumberを超えた場合に表示されます1.797693134862315E+308、それはJavaScriptの上限を表します。
同様に、-Infinity(負の無限大)は、数字が下限を超えた場合に表示されます-1.797693134862316E+308。
Infinityは数値です:typeof Infinityはnumberを返します:
typeof Infinity; // will return "number"テストをしてみて‹/›
この数字Infinityもループ内で使用できます:
var num = 5; while (num != Infinity) { // このコードはnum = ∞まで実行されます }テストをしてみて‹/›
デフォルトでは、JavaScriptは数値を10としての基数小数。
)および十六進数(基数16)および二進数(基数2)および8進数(基数8)を表します。
十六進数の接頭辞は0x:
var x = 0xFF; // x = 255テストをしてみて‹/›
二進数の接頭辞は0b:
var x = 0b1111;// x = 15テストをしてみて‹/›
ゼロで始まる数字(例えば0121)。数字を先頭にゼロで書くと、JavaScriptはその数字を8進数として解釈します:
var x = 016;テストをしてみて‹/›
このメソッドを使用してtoString()メソッドは2から36の数字を数値に戻します。
、十六進数として基数16、十進数として基数10、八進数として基数8、二進数として基数2。
var num = 255; num.toString(10); // returns 255 num.toString(16); // returns ff num.toString(8); // returns 377 num.toString(2); // returns 11111111テストをしてみて‹/›
通常、JavaScriptの数字はテキストから作成される原始値です:
var num = 50;
しかし、newキーワードを使用して数字をオブジェクトとして定義することもできます:
var num = new Number(50);
この二つの違いをテストするために、数字のプリミティブ値とオブジェクトを初期化します。
var num1 = 50; var num2 = new Number(50); typeof num1// returns number typeof num2// returns objectテストをしてみて‹/›
注意:数字をオブジェクトとして作成しないでください。これにより、実行速度が低下し、予期せぬ結果が発生する可能性があります。
==演算子を使用すると、数字は以下のように等しいです:
var num1 = 50; var num2 = new Number(50); document.write(num1 == num2); // trueを返します。なぜならnum1とnum2相等的値を持っていますテストをしてみて‹/›
===演算子を使用すると、相等的数字も不相等です。なぜなら===演算子は値とタイプの両方を期待しています:
var num1 = 50; var num2 = new Number(50); document.write(num1 === num2); // falseを返します。なぜならnum1とnum2異なるタイプを持っていますテストをしてみて‹/›
オブジェクトは比較できません:
var num1 = new Number(50); var num2 = new Number(50); document.write(num1 == num2); // falseを返します。なぜならnum1とnum2異なるオブジェクトです document.write(num1 === num2); // falseを返します。なぜならnum1とnum2異なるオブジェクトですテストをしてみて‹/›
注意(==)と(===)の違い。JavaScriptオブジェクトを比較すると常にfalseが返されます。