ほとんどのプログラミング言語には複数の数値データ型がありますが、JavaScript には 1 つしかありません。 typeof 演算子を使用して数値の型を確認できます。整数であるか浮動小数点数であるかに関係なく、JavaScript は単純に数値として分類します。
typeof 17; //number typeof 98.6; //number typeof -21.3; //number
実際、JavaScript の数値はすべて倍精度浮動小数点数です。これらは、IEEE754 標準で指定されている 64 ビットでエンコードされた数値 (「double」) です。この事実を見て、JavaScript が整数をどのように表現するのか疑問に思われる場合は、倍精度浮動小数点数は最大 53 桁の精度の整数を完全に表現できることを思い出してください。 –9 007 199 254 740 992 (-253) から 9 007 199 254 740 992 (253) までのすべての整数は、有効な倍精度浮動小数点数です。したがって、JavaScript には明らかな整数型が存在しないにもかかわらず、整数演算は完全に可能です。
ほとんどの算術演算子は、整数、実数、またはその両方の組み合わせを使用して計算を実行できます。
0.1 * 0.9; //0.19 -99 + 100; //1 21- 12.3; //8.7 2.5 /5; //0.5 21%8; //5
ただし、ビット算術演算子は特殊です。 JavaScript はオペランドを浮動小数点数として直接操作しませんが、操作を実行する前にオペランドを暗黙的に 32 ビット整数に変換します。 (正確には、整数の 32 ビット ビッグ エンディアン 2 の補数表現に変換されます。) ビットごとの OR 式を例に挙げます。
8|1; //9
一見単純な式でも、実際には操作を完了するにはいくつかの手順が必要です。前に述べたように、JavaScript の数値 8 と 1 は両方とも倍精度浮動小数点数です。ただし、32 ビット 0 と 1 のシーケンスである 32 ビット整数として表すこともできます。整数 8 は、次のように 32 ビットのバイナリ シーケンスとして表されます。
0000000000000000000000000001000
数値型の toString メソッドを使用して自分で表示することもできます。
(8).toString(2) //"1000"
toString メソッドのパラメータは、変換基数を指定します。この例は基数 2 (つまりバイナリ) で表されます。結果の値では、左側の余分な 0 (ビット) が最終値に影響しないため省略されます。
整数 1 は、次のように 32 ビット バイナリとして表されます。
00000000000000000000000000000001 ビットごとの OR 式は 2 つのビット シーケンスを結合します。演算に含まれる 2 ビットのいずれか 1 つが 1 である限り、演算結果のビットは 1 になります。結果をビットパターンで表現すると以下のようになります:
0000000000000000000000000001001 このシーケンスは整数 9 を表します。標準ライブラリ関数 parseInt を使用して検証することもできますが、基数 2 も使用します:
parseInt("1000", 2); //9(繰り返しになりますが、先頭の 0 ビットは演算の結果に影響を与えないため不要です。)
浮動小数点数に関する最後の警告は、浮動小数点数には常に注意する必要があるということです。浮動小数点数はよく知られているように思えるかもしれませんが、不正確であることで有名です。一見単純な算術演算でも、誤った結果が生成されることがあります。
0.1 0.2 0.300000000000004 64 ビットの精度は非常に高いですが、倍精度浮動小数点数は限られた数値セットのみを表すことができ、実数セット全体を表すことはできません。浮動小数点演算は、最も近い表現可能な実数に丸められた近似結果のみを生成できます。一連の操作を実行すると、丸め誤差が蓄積され、結果の精度がますます低くなります。丸めによって、通常予期される算術の法則から予期しない逸脱が生じる可能性もあります。たとえば、実数は結合法則を満たします。これは、任意の実数 x、y、z、(x y) z = x (y z) が常に満たされることを意味します。
ただし、浮動小数点数の場合は、常にそうとは限りません。
(0.1+0.2)+0.3; //0.60000000000000001 0.1+(0.2+ 0.3); //0.6浮動小数点数は精度とパフォーマンスのトレードオフになります。精度を重視する場合は、浮動小数点数の制限に注意してください。効率的な解決策は、整数は丸めなしで表現されるため、可能な限り整数値の算術演算を使用することです。通貨関連の計算を実行する場合、プログラマは多くの場合、計算を整数として実行できるように、計算を実行する前に値を最小通貨単位に比例変換します。たとえば、上記の計算が米ドルである場合、それをセントの整数表現に変換できます。
整数演算の場合、丸め誤差を心配する必要はありませんが、すべての計算は -253 から 253 までの整数にのみ適用されることに注意する必要があります。
ヒント
- JavaScript の数値はすべて倍精度浮動小数点数です。
- JavaScript の整数は倍精度浮動小数点数のサブセットにすぎず、別個のデータ型ではありません
- ビット演算子は、数値を 32 ビットの符号付き整数として扱います。
上記は JavaScript における浮動小数点数の紹介であり、浮動小数点演算の精度トラップに常に注意する必要があります。この記事が皆さんの学習に役立つことを願っています。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
