JavaScript では、次の 2 つの演算を通じて数学的演算を実装できます。
1. 、-、*、/、% およびその他の演算子。
2. Math オブジェクトの計算関数を使用します。たとえば、2 の 3 乗を計算するには、Math.pow(2,3) を使用します。
Java とは異なり、JavaScript の数学的演算ではエラーが発生しません。計算結果のオーバーフロー、0 による除算、負の数値の平方根をとるなどの演算は、JavaScript ではすべて正当です。結果は、正と負の Infinity (無限大)、正と負の 0、NaN (非整数) です。番号):
1. 正と負の無限大。計算結果が JavaScript が表現できる最大数 (Number.MAX_VALUE) より大きい場合、結果は正の Infinity になります。計算結果が JavaScript が表現できる最小数 (-Number.MAX_VALUE) より小さい場合、結果は次のようになります。負の無限大。無限大に関連する 、-、*、/ などの数学演算は、高度な数学の極限計算の規則に従います。 1/0 の結果は正の無限大、-1/0 の結果は負の無限大です。
2. プラスマイナス0。計算結果が正であるが、JavaScript が表現できる最小の小数点 (Number.MIN_VALUE) より小さい場合、結果は正の 0 になります。計算結果が負であるが、JavaScript が表現できる負の最大の小数点 (-Number) より大きい場合は、結果は正の 0 になります。 .MIN_VALUE) の場合、結果は負の 0 になります。通常、開発者は正の 0 と負の 0 の違いを気にする必要はありません。
3.NaN。正負の無限大でも表現できない特殊な計算結果については、JavaScript では NaN を使用して表現します (NaN は文字通り「数値ではない」という意味ですが、その型は数値であることに注意してください)。これらの特別な計算には次のものが含まれます:
1).0/0。
2).無限/無限。
3) 負の数の平方根を計算します。
4) 数値以外の文字列に対して数値変換操作を実行します。
Infinity と NaN の場合、それらは「無限」と「非数値」の出力結果であるだけでなく、JavaScript でこれら 2 つの特別な値を表すグローバル変数名でもあります。実際、ECMAScript 3 では、これら 2 つのグローバル変数に他の値を割り当てることもできます。このおかしなルールは ECMAScript 5 で改訂され、これら 2 つのグローバル変数は読み取り専用になりました。 Infinity 変数と NaN 変数に直接アクセスするだけでなく、Number オブジェクトのメンバー変数にアクセスして、次の 2 つの特別な値を使用することもできます:
1.Infinity は Number.POSITIVE_INFINITY と同等です。
2.-Infinity は Number.NEGATIVE_INFINITY と同等です。
3.NaN は Number.NaN と同等です。
JavaScript では、NaN は非常に興味深い特別な値であり、他の値 (それ自体を含む) と等しくないという特別な特性を持っています。値が NaN かどうかを判断するには 2 つの方法があります:
1. 変数 x について、x!=x が true かどうかを判断します。この式は、x が NaN の場合にのみ当てはまります。
2. 変数 x について、JavaScript でグローバル関数 isNaN() を呼び出し、isNaN(x) が true かどうかを判断します。このメソッドを使用して NaN を決定することは、実際には厳密ではありません。なぜなら、式 isNaN(x) は次の 4 つの場合に true であるからです。
1).x は NaN です。
2).x は文字列ですが、その文字列は数値ではありません。
3).x はオブジェクトです。
4).x は未定義です。
isNaN() に加えて、JavaScript にはもう 1 つの便利なグローバル関数 isFinite() があります。変数 a の場合、isFinite(a) は次の状況で true になります:
1).a は数値ですが、NaN や正または負の無限大ではありません。
2).a は文字列ですが、文字列の内容は非 NaN、非正または負の無限数です。
3).a は null です。
4).a はブール値です。
nullやunknownなど数値以外の型は結果に影響するので、isNaN()やisFinite()を使う前にパラメータの型を決めた方が良いと個人的には思っています。
実験
//テスト無限大
var a = Number.MAX_VALUE;
console.log(a*1.1);//Infinity
console.log(a*-1.1);//-Infinity
console.log(1/0);//無限大
console.log(-1/0);//-Infinity
//テスト陽性/陰性 0
var b = Number.MIN_VALUE;
console.log(b/2);//0
console.log(-b/2);//0
//NaN をテスト
console.log(0/0);//NaN
console.log(Infinity/Infinity);//NaN
console.log(Math.sqrt(-1));//NaN
console.log(parseInt("string"));//NaN
//Infinity の比較をテストします
console.log(Infinity === Number.POSITIVE_INFINITY);//true
console.log(-Infinity === Number.NEGATIVE_INFINITY);//true
//NaN 比較をテストします
console.log(NaN === NaN);//false
//テスト isNaN()
console.log(isNaN(NaN));//true
console.log(isNaN("42"));//false
console.log(isNaN("string"));//true
console.log(isNaN({}));//true
console.log(isNaN(未定義));//true
console.log(isNaN(null));//false
//テスト isFinite()
console.log(isFinite(42));//true
console.log(isFinite(Infinity));//false
console.log(isFinite(NaN));//false
console.log(isFinite("29"));//true
console.log(isFinite("string"));//false
console.log(isFinite(null));//true
console.log(isFinite(未定義));//false
console.log(isFinite(true));//true
console.log(isFinite(false));//true

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

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

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
