この記事では、JavaScript のデータ型とその変換について詳しく説明します。必要な方は参考にしてください。
1. はじめに
JavaScript 言語のすべての値は、特定のデータ型に属します。 JavaScript には 7 つのデータ型があります:
数値: 整数と小数 (1 や 3.14 など)。
文字列 (文字列): テキスト (Hello World など)。
ブール値: 信頼性を表す 2 つの特別な値、つまり true (真) と false (偽)。
未定義: 「未定義」または存在しないことを意味します。
null: null 値、つまりここの値が空であることを示します。
オブジェクト: さまざまな値のコレクション。
Symbol
Symbol は、ES6 で新しく追加された基本データ型です。この記事では、最初の 6 つの型のみを紹介します。
2. データ型の詳細説明
1. 数値 (数値):
1.1 整数と浮動小数点数
JavaScript 内部。すべての数値は、整数も含めて 64 ビット浮動小数点数として保存されます。
1 === 1.0 // true
1.2 精度
国際標準 IEEE 754 では、JavaScript 浮動小数点数の 64 個の 2 進数が左端から始まり、最初のデジタル符号ビットによって数値の符号が決まります ( 0は正の数、1 は負の数)、2 ~ 12 桁の指数部が値のサイズを決定し、13 ~ 64 の小数部が値の精度を決定します。
1.3 数値の基数
JavaScript は、整数の 4 つの基本表現方法 (10 進数、16 進数、8 進数、および 2 進数) を提供します。
10 進数: 先頭に 0 のない数値。
8 進数: 接頭辞 0o または 0O が付いた値。
16 進数: 接頭辞 0x または 0X が付いた値。
バイナリ: プレフィックス 0b または 0B が付いた値。
1.4 NaN
NaN は「数値ではない」を意味します。これは主に、文字列を数値に解析する際に次のようなエラーが発生した場合に発生します。
618 - 'x' // NaN
NaN不等于任何值,包括它本身。:
NaN === NaN // false2 . 文字列:
は '' または "" で囲まれます。内容が含まれていない場合は、長さ 0 の空の文字列になります。スペースが含まれているものはスペース文字列と呼ばれ、長さは 1 であり、この 2 つは異なります。
2.1 複数行の文字列
文字列が複数行に分割されている場合は、各行の最後にバックスラッシュを使用できます。そうしないとエラーが報告されます。バックスラッシュを使用するだけでなく、連結演算子 ( ) を使用して複数の単一行文字列を連結することもできます。これら 2 つの方法の結果は一貫しています。連結演算子 ( ) を使用することをお勧めします。
var longString = 'Long \ long \ long \ string'; longString // "Long long long string"
var longString = 'Long ' + 'long ' + 'long ' + 'string'; longString // "Long long long string"
ES6 では、複数行の文字列を記述するためにバックティック (`
) が追加され、この複数行の文字列の長さにはキャリッジ リターンの長さが含まれます。
2.2 エスケープ
バックスラッシュ () は文字列内で特別な意味を持ち、いくつかの特殊文字を表すために使用されるため、エスケープ文字とも呼ばれます。バックスラッシュでエスケープする必要がある特殊文字は、次のとおりです。
0: null (u0000)
n: 改行文字 (u000A)
- #r: Enter キー (u000D)
- t: タブ文字 (u0009)
- ' : シングルクォーテーション (u0027)
- ": ダブルクォーテーション (u0022) \: バックスラッシュ (u005C)
var s = 'mamamoo'; s.length // 7 s.length = 5; s.length // 7
3.ブール値):
##ブール値には「true」と「false」の 2 つの値しかありません。「true」はキーワード true で表され、「false」はキーワードで表されます。 JavaScript が期待するキーワード false の場合、その位置にある既存の値は、未定義、null、false、0、を除く 6 つの値に自動的に変換されます。 NaN、"" または '' (空の文字列) は false に変換され、その他の値は未定義および null とみなされます:
#4。
##null と unknown はどちらも「なし」を意味します。この 2 つの違いは次のとおりです。##null は「空」を表すオブジェクトであり、変換すると 0 になります。数値に変換します。unknown は「ここに定義がありません」を表すプリミティブです。数値に変換すると、値は NaN になります。変数に値がない場合は、unknown が返されます。
- ##5 を使用することをお勧めします。 オブジェクト:
-
- オブジェクトは次のとおりです。単に「キーと値のペア」のセットであり、順序付けされていない複合データのコレクションです。
生成方法は、キーと値のペアを括弧で囲み、それを変数に割り当てることです。ペアは「:」の前にカンマ、「:」の後にキー値で区切られます。
对象的所有键名都是字符串,要加引号,不加也会自动转为字符串。如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),且也不是数字,则必须加上引号,否则会报错。而键值是什么类型就用该类型的格式。
5.3 属性
对象的每一个键名又称为“属性”(property),它的“键值”可以是任何数据类型。
属性的读取
读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。
var obj = { p: 'Hello World' }; obj.p // "Hello World" obj['p'] // "Hello World",[]内''一定要加
属性的删除delete(无value无key)
var obj = { p: 1 }; Object.keys(obj) // ["p"] delete obj.p // true obj.p // undefined Object.keys(obj) // []
属性的查看Object.keys
var obj = { key1: 1, key2: 2 }; Object.keys(obj); // ['key1', 'key2']
属性是否存在:in
in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false。
属性的遍历:for...in 循环
var obj = {a: 1, b: 2, c: 3}; for (var i in obj) { console.log('键名:', i); console.log('键值:', obj[i]); } // 键名: a // 键值: 1 // 键名: b // 键值: 2 // 键名: c // 键值: 3
三、如何知道变量类型?
使用type of可得变量的数据类型,如:
var t = 619; type of t;//"number"
特别注意的是:
当数据类型为null时,用type of打出的数据类型却是'object'。
当定义了一个函数时,用type of打出的数据类型却是'function'。
四、数据类型的转换
4.1 转为string
使用toString()
var t = 619; t.toString();//"619"
null没有toString这个API,不能使用toString,会报错
var n = null; n.toString; //Uncaught TypeError: Cannot read property 'toString' of null
undefined也会报错
var n = undefined; n.toString(); //Uncaught TypeError: Cannot read property 'toString' of undefined
object使用toString会得到"[object Object]"。
var object = {name:"po"}; object.toString() //"[object Object]"
通过与空字符串相加(+"")也能转化为字符串类型,且null、undefined也适用。
使用window.String()
window.String(null)//"null"
为什么1 + '1' = '11'?
这是因为当两个不同数据类型相加时,会优先选择转化为字符串,所以1 + '1'相当于1.toString() + '1',于是结果为两个字符串1相加,即字符串11。4.2 转为布尔
使用Boolean()
Boolean(0)//false Boolean('')//false Boolean(' ')//true
使用!!
!! ''//false !! ' '//true
五个falsy值:0、NaN、空字符串、null、undefined
4.3 转为Number
使用Number()
Number('1')//1
使用parseInt()
//第二位参数要写,是表示进制使用parseFloat()
parseFloat('1.23')//1.23
使用 -0
'1'-0//1
使用 +
+ null//0
以上がJavaScriptのデータ型とその変換の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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の複数の顧客にサービスを提供できます


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1
使いやすく無料のコードエディター

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

WebStorm Mac版
便利なJavaScript開発ツール

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