JSチュートリアル

JSホーム JSの紹介 JSどこへ JS出力 JSステートメント JS構文 JSコメント JS変数 JS Let JSConst JSオペレーター JS算術 JS割り当て JSデータ型 JS関数 JSオブジェクト JSイベント JS文字列 JS文字列メソッド JS文字列検索 JS文字列テンプレート JS番号 JS番号メソッド JSアレイ JS配列メソッド JS配列ソート JSアレイの反復 JSアレイ定数 JSの日付 JSの日付形式 JS DateGetメソッド JS日付設定メソッド JS数学 JSランダム JSブール値 JSの比較 JS条件 JSスイッチ JSループFor JSループフォーイン JSループの JSループWhile JSブレイク JSIterables JSセット JSマップ JS Typeof JS型変換 JSビット単位 JS RegExp JSエラー JSスコープ JSホイスト JS厳密モード JSこのキーワード JSアロー関数 JSクラス JS JSON JSデバッグ JSスタイルガイド JSのベストプラクティス JSの間違い JSパフォーマンス JS予約語

JSバージョン

JSバージョン JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE /エッジ JSの歴史

JSオブジェクト

オブジェクト定義 オブジェクトのプロパティ オブジェクトメソッド オブジェクト表示 オブジェクトアクセサー オブジェクトコンストラクター オブジェクトのプロトタイプ オブジェクト反復可能 オブジェクトセット オブジェクトマップ オブジェクトリファレンス

JS関数

関数の定義 関数パラメーター 関数の呼び出し 関数呼び出し 機能適用 関数クロージャ

JSクラス

クラスイントロ クラス継承 クラス静的

JS非同期

JSコールバック JS非同期 JSの約束 JS Async / Await

JS HTML DOM

DOMイントロ DOMメソッド DOMドキュメント DOM要素 DOM HTML DOMフォーム DOM CSS DOMアニメーション DOMイベント DOMイベントリスナー DOMナビゲーション DOMノード DOMコレクション DOMノードリスト

JSブラウザBOM

JSウィンドウ JS画面 JSロケーション JSの歴史 JSナビゲーター JSポップアップアラート JSタイミング JSクッキー

JS Web API

WebAPIイントロ WebフォームAPI Web履歴API WebストレージAPI WebワーカーAPI Web Fetch API Web Geolocation API

JS AJAX

AJAXイントロ AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

JS JSON

JSONイントロ JSON構文 JSONとXML JSONデータ型 JSON解析 JSON文字列化 JSONオブジェクト JSON配列 JSONサーバー JSON PHP JSON HTML JSON JSONP

JSとjQuery

jQueryセレクター jQuery HTML jQuery CSS jQuery DOM

JSグラフィックス

JSグラフィックス JSキャンバス JSPlotly JS Chart.js JSグーグルチャート JS D3.js

JSの例

JSの例 JS HTML DOM JSHTML入力 JSHTMLオブジェクト JSHTMLイベント JSブラウザ JSエディター JS演習 JSクイズ JS証明書

JSリファレンス

JavaScriptオブジェクト HTMLDOMオブジェクト


JavaScript番号


JavaScriptには1種類の番号しかありません。数値は、小数の有無にかかわらず書き込むことができます。


let x = 3.14;    // A number with decimals
let y = 3;       // A number without decimals

非常に大きい数または非常に小さい数は、科学的(指数)表記で書くことができます。

let x = 123e5;    // 12300000
let y = 123e-5;   // 0.00123


JavaScriptの数値は常に64ビット浮動小数点です

他の多くのプログラミング言語とは異なり、JavaScriptは、整数、短い、長い、浮動小数点など、さまざまな種類の数値を定義しません。

JavaScript番号は、国際IEEE 754標準に従って、常に倍精度浮動小数点数として格納されます。

この形式では、数値は64​​ビットで格納され、数値(小数部)はビット0〜51に格納され、指数はビット52〜62に格納され、符号はビット63に格納されます。

値(別名分数/仮数) 指数 サイン
52ビット(0〜51)  11ビット(52-62) 1ビット(63)

整数精度

整数(ピリオドまたは指数表記のない数値)は、最大15桁の精度です。

let x = 999999999999999;   // x will be 999999999999999
let y = 9999999999999999;  // y will be 10000000000000000

小数点以下の最大数は17です。

浮動精度

浮動小数点演算は常に100%正確であるとは限りません。

let x = 0.2 + 0.1;

上記の問題を解決するには、乗算と除算が役立ちます。

let x = (0.2 * 10 + 0.1 * 10) / 10;


数字と文字列の追加

警告 !!

JavaScriptは、加算と連結の両方に+演算子を使用します。

数字が追加されます。文字列は連結されます。

2つの数値を加算すると、結果は数値になります。

let x = 10;
let y = 20;
let z = x + y;

2つの文字列を追加すると、結果は文字列の連結になります。

let x = "10";
let y = "20";
let z = x + y;

数値と文字列を追加すると、結果は文字列の連結になります。

let x = 10;
let y = "20";
let z = x + y;

文字列と数値を追加すると、結果は文字列の連結になります。

let x = "10";
let y = 20;
let z = x + y;

よくある間違いは、この結果が30になると予想することです。

let x = 10;
let y = 20;
let z = "The result is: " + x + y;

よくある間違いは、この結果が102030になると予想することです。

let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;

JavaScriptインタープリターは左から右に動作します。

xとyは両方とも数値であるため、最初の10 +20が追加されます。

次に、zが文字列であるため、30 + "30"が連結されます。


数値文字列

JavaScript文字列には数値コンテンツを含めることができます。

let x = 100;         // x is a number

let y = "100";       // y is a string

JavaScriptは、すべての数値演算で文字列を数値に変換しようとします。

これは機能します:

let x = "100";
let y = "10";
let z = x / y;

これも機能します:

let x = "100";
let y = "10";
let z = x * y;

そしてこれはうまくいくでしょう:

let x = "100";
let y = "10";
let z = x - y;

しかし、これは機能しません:

let x = "100";
let y = "10";
let z = x + y;

最後の例では、JavaScriptは+演算子を使用して文字列を連結します。


NaN-数字ではありません

NaNはJavaScriptの予約語で、数値が有効な数値ではないことを示します。

数値以外の文字列を使用して算術演算を実行しようとすると、NaN(数値ではなく)次のようになります。

let x = 100 / "Apple";

ただし、文字列に数値が含まれている場合、結果は数値になります。

let x = 100 / "10";

グローバルJavaScript関数isNaN() を使用して、値が数値ではないかどうかを確認できます。

let x = 100 / "Apple";
isNaN(x);

に気をつけてNaNください。数学演算で使用する場合NaN、結果も次のようになりますNaN

let x = NaN;
let y = 5;
let z = x + y;

または、結果はNaN5のような連結になる可能性があります。

let x = NaN;
let y = "5";
let z = x + y;

NaNは数値です:typeof NaN戻り値number

typeof NaN;

インフィニティ

Infinity(または-Infinity)は、可能な最大数以外の数を計算した場合にJavaScriptが返す値です。

let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
  myNumber = myNumber * myNumber;
}

0(ゼロ)による除算も次を生成しInfinityます:

let x =  2 / 0;
let y = -2 / 0;

Infinityは数値です:をtypeof Infinity返しますnumber

typeof Infinity;

16進数

JavaScriptは、数値定数の前に0xが付いている場合、16進数として解釈します。

let x = 0xFF;

先行ゼロ(07など)を含む数値は絶対に記述しないでください。
一部のJavaScriptバージョンは、先行ゼロで記述されている場合、数値を8進数として解釈します。

デフォルトでは、JavaScriptは数値を基数10の小数として表示します。

ただし、このメソッドを使用して、基数2 から基数36toString()までの数値を出力できます

16進数は基数16です。10進数は基数10です。8進数は基数8です。バイナリは基数2です。

let myNumber = 32;
myNumber.toString(10);
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);

オブジェクトとしてのJavaScript番号

通常、JavaScriptの数値は、リテラルから作成されたプリミティブ値です。

let x = 123;

newただし、数値は、キーワード:を使用してオブジェクトとして定義することもできます。

let y = new Number(123);

let x = 123;
let y = new Number(123);

Numberオブジェクトを作成しないでください。

キーワードはコードを複雑にし、new実行速度を遅くします。

Number Objectsは、予期しない結果を生成する可能性があります。

演算子を使用する場合==、xとyは等しい

let x = 500;
let y = new Number(500);

演算子を使用する場合===、xとyは等しくありません

let x = 500;
let y = new Number(500);

との違いに注意して(x==y)ください(x===y)

(x == y)正しいか間違っているか?

let x = new Number(500);
let y = new Number(500);

(x === y)正しいか間違っているか?

let x = new Number(500);
let y = new Number(500);

Comparing two JavaScript objects always returns false.

Complete JavaScript Number Reference

For a complete Number reference, visit our:

Complete JavaScript Number Reference.

The reference contains descriptions and examples of all Number properties and methods.