検索
ホームページウェブフロントエンドフロントエンドQ&AJavaScript の 6 つの基本データ型の詳細な分析

この記事では、JavaScript の 6 つの基本データ型に関する関連知識を提供します。お役に立てば幸いです。

JavaScript の 6 つの基本データ型の詳細な分析

1. 大文字と小文字の区別

JavaScript では、すべて (変数、関数、演算子) で大文字と小文字が区別されます。これは、変数名 test と変数名 Test が 2 つの異なる変数を表すことも意味します。

2. 識別子

いわゆる識別子は、変数、関数名と演算子、または関数パラメーターを指します。識別子の形式規則は次のとおりです:

1. 最初の文字は文字、アンダースコア (_) またはドル記号 ($) である必要があります;

2. 他の文字は文字でも構いません、アンダースコア、ドル記号、数字;

慣例により、JavaScript 識別子はキャメルケース形式で書かれます。つまり、1 文字が小文字で開かれ、残りの単語の最初の文字が大文字になります。例: firstChirld, myCar;

もちろん、識別子に小さなキャメル ケース形式を使用することは必須ではありませんが、コードを理解しやすくなります。他の人がコードを理解しやすくするための小さなキャメルケース形式。

3. コメント

JavaScript のコメント メソッドは、単一行コメントと複数行コメントに分かれています:
単一行コメント:

//这是一个单行注释

Multi-行コメント:

/*
*这是一个
*多行注释
*/

4. ステートメント

JavaScript では、ステートメントはセミコロンで終わります; セミコロンが省略された場合、インタープリターが終了を判断します。次の例に示すように:

var sum = a + b			//即使没有分号也是有效语句——不推荐
var diff = a - b;		//有效语句——推荐

5. 変数

JavaScript の変数型は弱い型付けです。いわゆる弱い型とは、あらゆる種類のデータを保存するために使用できることを意味します。 。言い換えれば、各変数は値を保持するための単なるプレースホルダーです。
変数を定義する場合は、var キーワードを使用し、その後に変数名 (つまり、識別子) を続けます。以下に示すように:

var  message;

JavaScript は変数の直接初期化もサポートしているため、変数の定義中に変数の値を設定できます。以下に示すように:

var message = "Hello world!";

注意する必要があるのは、var キーワードで定義された変数は、その変数が定義されているスコープ内のローカル変数になるということです。つまり、var を使用して関数内で変数を定義すると、その変数は関数の終了後に破棄されます。例:

function test(){
	var message = "Hello";		//局部变量
}
test();
console.log(message);		//错误!

エラーの理由は、関数 test() で var を使用して変数 message が定義されているためです。関数が呼び出されると、変数が作成され、値が割り当てられます。その後、変数はすぐに破棄されるため、例の次のコード行ではエラーが発生します。ただし、次のようにキーワード var を省略してグローバル変数を作成できます。

function  test(){
	message = "Hello";			//全局变量
}
test();
console.log(message);			//"Hello"

ここでキーワード var を省略すると、メッセージはグローバル変数になります。このように、test()関数を一度呼び出すだけで変数が定義され、グローバル変数を設定した後は関数外からどこからでもアクセスできるようになります。
キーワード var を省略してグローバル変数を定義することもできますが、ローカル スコープで定義されたグローバル変数は保守が難しいため、お勧めできません。

データ型

単純なデータ型がいくつかあります。データ型 (基本データ型とも呼ばれます): 未定義、Null、ブール、数値、および文字列。複合型である Object もあり、Object は基本的に順序付けされていない名前と値のペアのセットです。 JavaScript はカスタム型を作成するメカニズムをサポートしておらず、すべての値はこれら 6 つのデータ型のいずれかになります。

typeof 演算子

JavaScript は弱い型指定であるため、指定された変数のデータ型を検出する方法が必要です。typeof は、指定された変数のデータ型を検出する操作です。 . シンボル。値に対して typeof 演算子を使用すると、次のいずれかの文字列が返される場合があります:

  • "unknown" - 値が未定義の場合;

  • " boolean" - 値がブール型の場合;

  • "string" - 値が文字列の場合;

  • "number "— —値が数値の場合;

  • "object"—値がオブジェクトまたは null の場合;

  • "function"— — —値が関数の場合;

typeof 演算子の使用例をいくつか示します。

var message = "hello";
console.log(typeof message);			//"string"
console.log(typeof(message));			//"string"
console.log(typeof 95);					//"number"

typeof 演算子のオペランドは次のとおりです。変数。数値リテラルも使用できます。 typeof は関数ではないため、この例では括弧を使用できますが、括弧は必須ではないことに注意してください。
JavaScript では、関数はデータ型ではなくオブジェクトであるため、関数を他のオブジェクトと区別するには typeof を使用する必要があります。

未定義型

未定義型には値が 1 つだけあり、それが特別な unknown です。変数が var を使用して宣言されているが初期化されていない場合、変数の値は未定義です。例:

var message;
console.log(message  == undefined);		//true
var message1 = "undefined";
console.log(message1 == undefined);			//true

ただし、紛らわしい点は、初期化されていない変数に対して typeof 演算子を実行すると未定義の値が返され、宣言されていない変数に対して typeof 演算子を実行すると未定義の値も返されることです。次の例を見てください:

var message;			//这个变量声明之后默认取得了undefined值
//下面这个变量并没有声明
//var age;
console.log(typeof message);		//"undefined"
console.log(typeof age);			//"undefined"

初期化された変数と宣言された変数の両方が unknown を返しますが、この結果は論理的に妥当です。これら 2 つの変数は技術的な観点からは本質的に異なりますが、実際にはどちらのタイプの変数に対しても実際の操作を実行することは不可能であるためです。

Null类型

Null类型是第二个只有一个值得类型,这个特殊的值是null。从逻辑的角度来看,null值表示一个对象的空指针,而这也正是使用typeof操作符的检测null值时会返回“object”的原因,如下面的例子所示:

var message= null;		
console.log(message);		//"object"

如果定义的对象将来用来保存对象,那么最好将这个变量初始化为null而不是其他的值。这样一来,只要直接检查null值就可以直接知道相应的变量是否已经保存了一个对象的引用,如下面的例子:

if(message != null){
	//对message进行一系列的操作
}

实际上,undefined的值是派生自null值得,所以对它们进行相等性测试的时候要返回true:

console.log(null == undefined);		//true

在这里,位于null和undefined之间的相等操作符(==)总是返回true。尽管null和undefined有这样的关系,但它们的的用途完全不同。如上面所述,无论在什么情况下,都没有必要把一个变量显示的表示为undefined,可是同样的规则对null却不适用。换句话说,只有保存对象的变量还没有真正的保存对象,就应该在明确地表示将该变量保存为null值。这样做不仅可以体现null值作为空指针的惯例,而且也有助于进一步的区分null和undefined。

Boolean类型

Boolean类型是JavaScript中使用最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。以下是为变量赋值的例子:

var first = true;
var second = false;

需要注意的是,boolean类型的两个值区分大小写。也就是说True和true、False和false不是一回事。
True和False(以及其他混合大小形式)只是标识符,不是boolean值。
虽然boolean值只有两个值,但是JavaScript所有类型的值都有与这两个boolean值等价的值。要将一个值转换为相应的Boolean值,可以调用Boolean()函数。例如:

	var message = "Hello world!";
	var messageAsBoolean = Boolean(message);
	console.log(messageAsBoolean);		//true

可以对任何类型的值调用Boolean()函数,而且总会返回一个boolean值。至于返回的是true还是false取决于要转换的实际类型及其实际值。下表给出了各种数据类型对其转换的相应规则:

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 “”(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a undefined

Number类型

在JavaScript中number类型定义了不同的数值字面量格式。例如:

	var  intNumber = 55;		//十进制整数
	var octalNum1 = 070;		//八进制的56
	var octaNum2 = 079;			//无效的八进制数,解析为79
	var octaNum3 =  08;			//无效的八进制数,解析为8
	var hexNum1 = 0xA;			//十六进制的10
	var hexNum2 = 0x1f;			//十六进制的31

在进行算术计算时,所有八进制和十六进制表示的数值都会转换成十进制数值。

NaN

NaN即非数值,是一个特殊的数值。这个数用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。NaN本身有两个特点:
首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。
其次,NaN与任何值都不相等,包括NaN本身。例如:

console.log(NaN ==NaN );		//false

String类型

string类型用于表示零或多个Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(’)表示,因此下面两种写法都是有效的:

var firstName = "王文正";
var secondName = "王彬";

双引号开头的必须以双引号结尾,而当引号开头的必须以单引号结尾。下面这种会导致语法错误:

var name = "王彬';		//语法错误
字符字面量

String类型中包含了一些特殊字面量,也叫转义序列,用于表示非打印字符,或者有其他的用途的字符。这些字符字面量如下表所示:

字面量 含义
\n 换行
\t 制表
\b 退格
\r 回车
\f 进纸
\ 斜杠
单引号
" 双引号
\xnn 以十六进制代码nn表示一个字符
\unnn 以十六进制代码nnn表示一个Unicode字符
字符串的特点

JavaScript中的字符串是不可变的,也就是说,字符串一旦创建,它的值就是不可更改的。要更改某个变量中保存的字符串,首先要销毁原来的字符串,然后用另一个包含新值得字符串填充变量,例如:

var lang = "java";
lang = lang + "script";
console.log(lang);		//javascript

Object类型

JavaScript中的对象是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型名称来创建。而创建Object类型的实例并为其添加属性或方法,就可以创建自定义对象。如下所示:

var o = new Object();
var  o = new Object;		//有效,但是不推荐这种做法;
Object的每个实例都具有以下下列属性和方法:
  • constructor:保存着用于创建当期那对象的函数。

  • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是实际的原型中)是否存在。

  • isPrototypeOf(object):用于检查传入的对象那个是否是当前对象的原型。

  • propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句

  • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应

  • valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同

  • toString():返回对象的字符串表示

  • 由于在JavaScript中Object是所有对象的基础,因此所有对象都具有这些基本的属性和方法。

【相关推荐:javascript学习教程

以上がJavaScript の 6 つの基本データ型の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はCSDNで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
ReactアプリケーションのuseState()を使用してパフォーマンスを最適化しますReactアプリケーションのuseState()を使用してパフォーマンスを最適化しますApr 27, 2025 am 12:22 AM

useState()uscrucialforoptimizingRectperformanceduetuitsoitsimpactonre-rendersandupdates.tooptimize:1)useusecallbacktomoize funtionsandpreventunnederireRenders.2)

コンテキストとuseState()を使用してコンポーネント間で状態を共有するコンテキストとuseState()を使用してコンポーネント間で状態を共有するApr 27, 2025 am 12:19 AM

コンテキストとユーザーを使用して、大規模なReactアプリケーションで州の管理を簡素化できるため、状態を共有します。 1)プロップドリルを減らす、2)より明確なコード、3)グローバルな状態を管理しやすい。ただし、パフォーマンスのオーバーヘッドと複雑さのデバッグに注意してください。コンテキストと最適化技術の合理的な使用は、アプリケーションの効率と保守性を向上させることができます。

Reactの仮想DOMアップデートに対する誤ったキーの影響Reactの仮想DOMアップデートに対する誤ったキーの影響Apr 27, 2025 am 12:19 AM

誤ったキーを使用すると、Reactアプリケーションでパフォーマンスの問題や予期しない動作を引き起こす可能性があります。 1)キーはリスト項目の一意の識別子であり、Virtual Domを効率的にReactの更新を支援します。 2)同じまたは非ユニークなキーを使用すると、リスト項目が再注文され、コンポーネント状態が失われます。 3)キーとして安定した一意の識別子を使用すると、パフォーマンスを最適化し、完全な再レンダリングを回避できます。 4)ESLINTなどのツールを使用して、キーの正しさを確認します。キーを適切に使用すると、効率的で信頼性の高い反応アプリケーションが保証されます。

Reactの鍵の理解:リストレンダリングを最適化しますReactの鍵の理解:リストレンダリングを最適化しますApr 27, 2025 am 12:13 AM

非反応、キーセレエンショナルフロプリメイジングリストレンダーパフォーマンスByhelpingRackChangesinListitems.1)KeySENABLEENABLEDDATES BYIDENTIFINAYDDATESEDDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDED、ORREMOVEDITEMS.2)

reactでuseState()を使用して作業するときに避けるべき一般的な間違いreactでuseState()を使用して作業するときに避けるべき一般的な間違いApr 27, 2025 am 12:08 AM

UseStateは、多くの場合、Reactで誤用されます。 1. useStateの作業メカニズムを誤解します:SetStateの直後にステータスは更新されません。 2。エラー更新ステータス:機能形式のSetStateを使用する必要があります。 3。ユーザーを使いすぎる:必要に応じて小道具を使用します。 4.使用効果の依存関係アレイを無視する:状態が変更されたときに依存関係配列を更新する必要があります。 5。パフォーマンスの考慮事項:状態と簡素化された状態構造のバッチ更新は、パフォーマンスを改善できます。 UseStateの正しい理解と使用は、コードの効率と保守性を向上させることができます。

ReactのSEOに優しい性質:検索エンジンの可視性の向上ReactのSEOに優しい性質:検索エンジンの可視性の向上Apr 26, 2025 am 12:27 AM

はい、Reactapplicationscanbeseo-frendlywithpropertrategies.1)useServer-siderendering(ssr)withtoolslikenext.jstogeneratefullhtmlforindexing.2)explmentStaticSiteSite-generation(SSG)forcontent-heavysitestoprededopRederpageattiTiTeTietLe.3)

Reactのパフォーマンスボトルネック:遅いコンポーネントの識別と最適化Reactのパフォーマンスボトルネック:遅いコンポーネントの識別と最適化Apr 26, 2025 am 12:25 AM

反応性能のボトルネックは、主に非効率的なレンダリング、不必要な再レンダリング、コンポーネントの内部重量の計算によって引き起こされます。 1)ReactDevtoolsを使用して遅いコンポーネントを見つけ、React.Memoの最適化を適用します。 2)EFFECTを最適化して、必要に応じて実行することを確認します。 3)メモリ処理には、usememoとusecallbackを使用します。 4)大きなコンポーネントを小さなコンポーネントに分割します。 5)ビッグデータリストについては、仮想スクロールテクノロジーを使用してレンダリングを最適化します。これらの方法により、Reactアプリケーションのパフォーマンスを大幅に改善できます。

Reactの代替品:他のJavaScriptUIライブラリとフレームワークの探索Reactの代替品:他のJavaScriptUIライブラリとフレームワークの探索Apr 26, 2025 am 12:24 AM

パフォーマンスの問題、学習曲線、またはさまざまなUI開発方法の探索のために、誰かが反応する代替品を探すことができます。 1)Vue.JSは、統合の容易さと軽度の学習曲線で称賛され、小規模および大規模なアプリケーションに適しています。 2)AngularはGoogleによって開発されており、強力なタイプのシステムと依存噴射を備えた大規模なアプリケーションに適しています。 3)Svelteは、ビルド時に効率的なJavaScriptにコンパイルすることにより、優れたパフォーマンスとシンプルさを提供しますが、そのエコシステムはまだ成長しています。代替案を選択するときは、プロジェクトのニーズ、チームエクスペリエンス、プロジェクトの規模に基づいて決定する必要があります。

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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール