検索
ホームページウェブフロントエンドjsチュートリアルJavaScriptの型、値、変数のまとめ_JavaScriptスキル

前書き: JavaScript データ型は、プリミティブ型とオブジェクト型の 2 つのカテゴリに分類されます。 5 つのプリミティブ タイプ: 数値、文字列、ブール値、null (空)、未定義 (未定義)。オブジェクトは属性のコレクションであり、各属性は「名前と値のペア」で構成されます (値はプリミティブ値またはオブジェクトにすることができます)。 3 つの特別なオブジェクト: グローバル オブジェクト、配列、関数。 JavaScript 言語のコアでは、日付 (Date) クラス、通常 (RegExp) クラス、およびエラー (Error) クラスの 3 つの便利なクラスも定義されています。

1 つの数字

JavaScript は整数値と浮動小数点値を区別しません。 JavaScript は 10 進整数リテラル (いわゆるリテラルはプログラム内で直接使用されるデータ値です) と 16 進値 (先頭に 0x または 0X が付きます。これは文字の o ではなく数字の 0 です) を認識できます。考えてみてください。それが文字 o の場合、そうであれば、16 進数値が識別子になります。) ECMAScript 標準は 8 進数リテラルをサポートしていませんが、JavaScript の一部の実装では、8 進数形式を使用して整数 (先頭に数字 0 が付きます) を表すことができます。筆者は、IE、Chrome、FF の 3 つのブラウザで整数を表すために 8 進数を使用しています。変数の代入も問題ありません。ただし、ECMAScript6 の厳密モードでは、8 進リテラルは明示的に禁止されています。

浮動小数点リテラルを記述するには 2 つの方法があります。 ① 実数の伝統的な書き方: 整数部分、小数点、および小数部分で構成されます。 ② 指数計算方法: つまり、実数の後に文字 e または E が続き、その後に正または負の符号が続きます。 、その後に整数の指数が続きます。

1.1 四則演算のオーバーフロー

JavaScript の算術演算では、オーバーフロー、アンダーフロー、または 0 で割り切れる場合にエラーが報告されません。

オーバーフロー: 演算結果が JavaScript が表現できる数値の上限を超える場合、結果は正の無限大または負の無限大-無限大になります。無限値の動作特性も現実と一致しています。それらに基づく加算、減算、乗算、および除算の演算結果は依然として無限値です (もちろん、その符号は保持されます): 演算結果が無限である場合。ゼロに近く、JavaScript が表現できる最小値よりも小さい値がまだ小さい場合に何が起こったのか。この場合、0が返されます。負の数値がアンダーフローした場合、特別な値「負のゼロ」が返されます。負のゼロと整数のゼロは、除数を除いて本質的に等しい (厳密な等価 === を使用してテストすることもできる):

var zero = 0;  //正零值
var negz = -0;  //负零值
zero === negz  //表达式返回值为true
1/zero === 1/negz  
//表达式返回值false,等价于判断正无穷大和负无穷大是否严格相等

0 で割り切れると、正の無限大または負の無限大が返されます。ただし、0 を 0 で除算すると、NaN (JavaScript の事前定義オブジェクト Number の NaN プロパティの値) が返されます。 NaN が返される状況は 4 つあります。 ① 0 を 0 で割った場合 ② 無限大を無限大で割った場合 ③ 任意の負の数に対して平方根演算を実行した場合 ④ 数値ではないオペランド、または数値に変換できないオペランドで算術演算子が使用された場合。

NaN 値には特別な点があります。それは、それ自体を含め、どの値とも等しくありません。変数 x が NaN であるかどうかを判断するには、次の 2 つの方法があります。 ① isNaN() 関数を使用する。 ② x != x を使用して、x が NaN である場合にのみ式の結果が true になる。 JavaScript にも同様の関数 isFinite() があり、パラメータが NaN、Infinity、または -Infinity でない場合に true を返します。

1.2 2 進浮動小数点数と丸め誤差

実数は無数にありますが、JavaScript が浮動小数点数の形で表現できるのは限られた数だけです。つまり、JavaScript で実数を使用する場合、それらは実数値の単なる近似表現にすぎないことがよくあります。 JavaScript は IEEE-754 浮動小数点数表現を使用します。これは、1/2、1/8、1/1024 などの分数を正確に表現できるバイナリ表現ですが、1/10、1/10 などの小数は表現できません。正確に。例:

var x = 0.3 -0.2;  //x=0.09999999999999998
var y = 0.2 - 0.1;  // y=0.1
x == y       //false
x == 0.1      //false
y == 0.1      //true
0.1 == 0.1     //true
var z = x + y;   //z=0.19999999999999998

  2 文本

  2.1 字符串、字符集

  字符串(string)是一组由16位值组成的不可变的有序序列,每个字符通常来自于Unicode字符集。字符串的长度(length)是其所含16位值得个数。JavaScript通过字符串类型来表示文本。注意:JavaScript中并没有表示单个字符的“字符型”。要表示一个16位值,只需将其赋值给字符串变量即可。

  JavaScript采用UTF-16编码的Unicode字符集,JavaScript字符串是由一组无符号的16位值组成的序列。那些不能表示为16位的Unicode字符则遵循UTF-16编码规则——用两个16位值组成一个序列(或称作“代理项对”)表示。这意味着一个长度为2的JavaScript字符串有可能表示一个Unicode字符。注意:JavaScript定义的各式字符串的操作方法均作用于16位值,而非字符,且不会对代理项对做单独处理。书看到这里,又结合http://www.alloyteam.com/2013/12/js-calculate-the-number-of-bytes-occupied-by-a-string/上面所述,终于对Unicode字符集、UTF-8、UTF-16稍有理解。

  字符串的定界符可以是单引号或者双引号。这两种形式的定界符可以嵌套,但是不能多层嵌套(比如,双引号可以包含单引号,这时单引号中不能再包含双引号了)。正如上篇所说,一个字符串值可以拆分为数行,每行必须以反斜线(\)结束,这时反斜线和行结束符都不算是字符串内容,即字符串本身并非是多行,只是写成了多行的形式。

  注意:①在JavaScript中字符串是固定不变的(除非重新赋值),类似replace()和toUpperCase()的方法都返回新字符串,原字符串本身并没有变化;②字符串可以当做只读数组,除了使用charAt()方法来查询一个单一字符,也可以使用方括号的方式来访问字符串中的单个字符(16位值),例如:

    s = "hello, world";
    s[0]   //=>"h"

2.2 エスケープ文字

エスケープ文字の意味
o NUL 文字 (u0000)
b バックスペース文字 (u0008)
t 水平タブ(u0009)
n 改行文字 (u000A)
v 垂直タブ (u000B)
f フォームフィード文字 (u000C)
r キャリッジリターン (u000D)
" 二重引用符 (u0022)
' アポストロフィまたは一重引用符 (u0027)
\バックスラッシュ(u005C)
xXX 2 桁の 16 進数 XX
で指定される Latin-1 文字 uXXXX 4桁の16進数XXXXで指定されるUnicode文字
                                                                                                                                                                                                      注: 「」文字が表にリストされていない文字の前にある場合、「」文字は無視されます。たとえば、「#」と「#」は同等です。バックスラッシュには、複数行の文字列の各行の末尾にバックスラッシュを使用する役割もあることを忘れないでください。

3 ブール値

JavaScript の値はブール値に変換できます。このうち、null、unknown、0、-0、NaN、""(空文字列)の6つの値はfalse、falseに変換され、これら6つの値をすべて「false値」と呼ぶこともあります。オブジェクト (配列) を含むその他の値は true に変換され、true およびこれらの値は「true 値」と呼ばれます。注: Boolean には toString() メソッドが含まれているため、このメソッドを使用して文字列を「true」または「false」に変換できますが、他の便利なメソッドは含まれていません。

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

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

JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

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

Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

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

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

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

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

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

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

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

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

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

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MantisBT

MantisBT

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール