JavaScript学習ノートのデータ型

May 16, 2016 pm 04:20 PM
javascript データの種類

JavaScript のデータ型は非常に単純で、未定義、null、string、Boolean、number、object のみを含みます。今日は、皆さんの理解と記憶を容易にするために、これらのデータ型を 1 つずつ説明します。

1. 分類

基本データ型: 未定義、null、文字列、ブール値、数値

複合データ型: object

object の属性は、順序のない名前と値のペア (名前:値) の形式で定義されます

2. 詳細説明

1. 未定義: 未定義型の値は 1 つだけです。変数が var を使用して宣言されていても初期化されていない場合、この変数の値は未定義です。

を含む変数未定義の値は、未定義の変数と同じです。次の例で説明します。

var demo1;//声明但未初始化
alert(demo1);//undefined
alert(demo2);//报错,demo2 is not defined
ログイン後にコピー

: null 型には、論理値からの値が 1 つだけあります。観点から見ると、null 値は null オブジェクト ポインターを表します。

定義した変数を将来オブジェクトを保持するために使用する場合は、変数を別の値ではなく null に初期化することが最善です。 。このようにして、null 値が直接検出される限り、対応する変数がオブジェクトへの参照を保存したかどうかを知ることができます。たとえば、

 if(car != null)
    {
        //对car对象执行某些操作
    }
ログイン後にコピー
実際、未定義の値は次から導出されます。 null 値であるため、ECMA -262 は、それらの等価性のテストで true を返すように指定しています。

alert(undefined == null); //true
ログイン後にコピー
null と unknown にはこのような関係がありますが、用途は全く異なります。いかなる状況でも、変数の値を明示的に未定義に設定する必要はありませんが、同じ規則は null には適用されません。言い換えれば、オブジェクトを保持することを意図した変数が実際にはオブジェクトを保持しない限り、その変数には明示的に null 値を保持させる必要があります。そうすることで、null オブジェクト ポインターとしての null の規則が反映されるだけでなく、null と未定義をさらに区別するのにも役立ちます。


3. ブール型:

ブール型には true と false の 2 つの値があります。これら 2 つの値は数値と同じではありません。 true は必ずしも 1 に等しいとは限りません。また、false は必ずしも 0 に等しいとは限りません。

ブール型のリテラル値は大文字と小文字が区別されることに注意してください。つまり、True と False (および大文字と小文字が混合されたその他の形式) はブール値ではなく、単なる識別子です。

ブール型のリテラル値は 2 つだけですが、JavaScript のすべての型の値はこれら 2 つのブール値と同等の値を持ちます。値を対応するブール値に変換するには、型変換関数 Boolean() を呼び出すことができます。例:

var message = 'Hello World';
    var messageAsBoolean = Boolean(message);
ログイン後にコピー
この例では、文字列メッセージがブール値に変換され、保存されます。 messageAsBoolean 変数内。 Boolean() 関数は、任意のデータ型の値に対して呼び出すことができ、常にブール値を返します。戻り値が true か false になるかは、変換対象の値のデータ型と実際の値によって異なります。次の表に、さまざまなデータ型とそのオブジェクトの変換規則を示します。


これらの変換ルールは、フロー制御ステートメント (if ステートメントなど) を理解し、対応するブール変換を自動的に実行するために非常に重要です。次に例を示します。

var message = 'Hello World';
if(message)//相当于if(Boolean(message)==true) {
        alert("Value is true");//Value is true
}
ログイン後にコピー
これにより、ブール変換が自動的に実行されるため、フロー制御ステートメントでどの変数が使用されるかを正確に知ることが重要です。

4. 数値: 整数と浮動小数点

4.1 整数: 計算を実行するとき、すべての 8 進数と 16 進数は 10 進数に変換されます

4.2浮動小数点: 浮動小数点値の最高精度は 17 桁であるため、その精度は算術計算では整数よりもはるかに劣ります。たとえば、0.1 0.2 の結果は 0.3 ではなく、0.3000000000000004 になります。例:

a=0.2;
b=0.1;
if(a+b==0.3){
alert("hello");
}
else{
alert("hi");
}
ログイン後にコピー
結果は「hi」と表示されるため、特定の浮動小数点値をテストしないでください。

4.3 NaN: 数値ではありません。この値は、数値を返すはずのオペランドが数値を返さなかったことを示すために使用されます (エラーがスローされないように)。

NaN 自体には 2 つの優れた特徴があります。まず、NaN を伴う演算 (NaN/10 など) は NaN を返すため、複数ステップの計算で問題が発生する可能性があります。第 2 に、NaN は、NaN 自体を含め、どの値とも等しくありません。例:

alert(NaN == NaN);    //false
ログイン後にコピー
JavaScript には isNaN() 関数があります。この関数は任意の型のパラメーターを受け入れます。この関数は、パラメーターが「数値ではない」かどうかを判断するのに役立ちます。価値"。 isNaN() は値を受け取ると、その値を数値に変換しようとします。数値ではない一部の値は、文字列「10」やブール値など、数値に直接変換されます。数値に変換できない値があると、この関数は true を返します。たとえば、

alert(isNaN(NaN));    //true
alert(isNaN(10));    //false(10是一个数值)
alert(isNaN("10"));    //false(可能被转换为数值10)
alert(isNaN("blue"));    //true(不能被转换为数值)
alert(isNaN("bule123")); //ture(不能被转换为数值)
alert(isNaN(true));    //false(可能被转换为数值1)
ログイン後にコピー
には、数値以外の値を数値に変換できる 3 つの関数、Number()、parseInt()、および parseFloat() があります。最初の関数である変換関数 Number() は任意のデータ型に使用できますが、他の 2 つの関数は特に文字列を数値に変換するために使用されます。これら 3 つの関数は、同じ入力に対して異なる結果を返します。

Number() 関数の変換規則は以下のとおりです。

● ブール値の場合、true は 1、false は 0 に置き換えられます。

● 数値の場合は、単純に渡して

を返します。 ● null 値の場合は、0 を返します

● 未定義の場合は、NaN を返します

● 文字列の場合は、次のルールに従います:

   ○ 如果字符串中只包含数字,则将其转换为十进制数值,即”1“会变成1,”123“会变成123,而”011“会变成11(前导的0被忽略)

   ○ 如果字符串中包含有效的浮点格式,如”1.1“,则将其转换为对应的浮点数(同样,也会忽略前导0)

   ○ 如果字符串中包含有效的十六进制格式,例如”0xf“,则将其转换为相同大小的十进制整数值

   ○ 如果字符串是空的,则将其转换为0

   ○ 如果字符串中包含除了上述格式之外的字符,则将其转换为NaN

● 如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再依次按照前面的规则转换返回的字符串值。

var num1 = Number("Hello World");    //NaN
var num2 = Number("");                //0
var num3 = Number("000011");        //11
var num4 = Number(true);            //1
ログイン後にコピー

由于Number()函数在转换字符串时比较复杂而且不够合理,因此在处理整数的时候更常用的是parseInt()函数,而处理浮点数的时候常用parseFloat()函数。

5、String

String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由单引号(')或双引号(")表示。

var str1 = "Hello";
var str2 = 'Hello';
ログイン後にコピー

任何字符串的长度都可以通过访问其length属性取得

alert(str1.length);        //输出5
ログイン後にコピー

要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的toString()方法。

var age = 11;
var ageAsString = age.toString();    //字符串"11"
var found = true;
var foundAsString = found.toString();    //字符串"true"
ログイン後にコピー

数值、布尔值、对象和字符串值都有toString()方法。但null和undefined值没有这个方法。

多数情况下,调用toString()方法不必传递参数。但是,在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。

var num = 10;
alert(num.toString());      //"10"
alert(num.toString(2));     //"1010"
alert(num.toString(8));     //"12"
alert(num.toString(10));    //"10"
alert(num.toString(16));    //"a"
ログイン後にコピー

通过这个例子可以看出,通过指定基数,toString()方法会改变输出的值。而数值10根据基数的不同,可以在输出时被转换为不同的数值格式。

在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。

String()函数遵循下列转换规则:

● 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果

● 如果值是null,则返回"null"

● 如果值是undefined,则返回”undefined“

6、object

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

var o = new Object();

object类型所具有的任何属性和方法也同样存在于更具体的对象中,Object的每个实例都具有下列属性和方法:

● constructor(构造函数)——保存着用于创建当前对象的函数

● hasOwnProperty(propertyName)——用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty("name"))

● isPrototypeOf(object)——用于检查传入的对象是否是另一个对象的原型

● propertyIsEnumerable(propertyName)——用于检查给定的属性是否能够使用for-in语句来枚举

● toString()——返回对象的字符串表示

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

三、小测试

typeof(NaN)
typeof(Infinity)
typeof(null)
typeof(undefined)
ログイン後にコピー

很多面试都会问到上面几个小问题哒~~

以上就是这6种javascript数据类型的介绍了,小伙伴们是否了解清楚了呢,希望看完本文后大家能有所提高。更多相关教程请访问JavaScript视频教程

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

MySQL データベースの性別フィールドにはどのデータ型を使用する必要がありますか? MySQL データベースの性別フィールドにはどのデータ型を使用する必要がありますか? Mar 14, 2024 pm 01:21 PM

MySQL データベースでは、通常、性別フィールドは ENUM タイプを使用して保存できます。 ENUM は、定義済みの値のセットから 1 つをフィ​​ールドの値として選択できる列挙型です。 ENUM は、性別などの固定的で限定されたオプションを表す場合に適しています。具体的なコード例を見てみましょう。性別を含むユーザー情報を含む「users」というテーブルがあるとします。ここで性別のフィールドを作成したいと思います。テーブル構造は次のように設計できます: CRE

MySQL の性別フィールドに最適なデータ型は何ですか? MySQL の性別フィールドに最適なデータ型は何ですか? Mar 15, 2024 am 10:24 AM

MySQL では、性別フィールドに最も適したデータ型は ENUM 列挙型です。 ENUM 列挙型は、可能な値のセットを定義できるデータ型です。通常、性別には男性と女性の 2 つの値しかないため、性別フィールドは ENUM 型の使用に適しています。次に、具体的なコード例を使用して、MySQL で性別フィールドを作成し、ENUM 列挙型を使用して性別情報を保存する方法を示します。手順は次のとおりです。 まず、MySQL に users という名前のテーブルを作成します。

Python 構文のマインド マップ: コード構造の深い理解 Python 構文のマインド マップ: コード構造の深い理解 Feb 21, 2024 am 09:00 AM

Pythonはそのシンプルで読みやすい構文から幅広い分野で広く使われています。プログラミングの効率を向上させ、コードがどのように機能するかを深く理解するためには、Python 構文の基本構造をマスターすることが重要です。この目的を達成するために、この記事では、Python 構文のさまざまな側面を詳しく説明した包括的なマインド マップを提供します。変数とデータ型 変数は、Python でデータを保存するために使用されるコンテナです。マインド マップには、整数、浮動小数点数、文字列、ブール値、リストなどの一般的な Python データ型が表示されます。各データ型には独自の特性と操作方法があります。演算子 演算子は、データ型に対してさまざまな操作を実行するために使用されます。マインド マップは、算術演算子、比率など、Python のさまざまな演算子の種類をカバーしています。

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

MySQLでのBoolean型の使い方を詳しく解説 MySQLでのBoolean型の使い方を詳しく解説 Mar 15, 2024 am 11:45 AM

MySQL でのブール型の使用方法の詳細な説明 MySQL は、一般的に使用されるリレーショナル データベース管理システムです。実際のアプリケーションでは、論理的な true と false の値を表すためにブール型を使用する必要があることがよくあります。 MySQL には Boolean 型の表現方法として TINYINT(1) と BOOL の 2 つがあります。この記事では、ブール型の定義、代入、クエリ、変更など、MySQL でのブール型の使用方法を詳細に紹介し、具体的なコード例を示して説明します。 1. ブール型は MySQL で定義されており、次のようにすることができます。

MySQL の性別フィールドに最適なデータ型の選択は何ですか? MySQL の性別フィールドに最適なデータ型の選択は何ですか? Mar 14, 2024 pm 01:24 PM

データベース テーブルを設計する場合、適切なデータ型を選択することは、パフォーマンスの最適化とデータ ストレージの効率にとって非常に重要です。 MySQL データベースでは、性別フィールドには通常、男性または女性の 2 つの値しかないため、性別フィールドを保存するデータ型にいわゆる最良の選択はありません。ただし、効率とスペースを節約するために、性別フィールドを保存するのに適切なデータ型を選択できます。 MySQL では、性別フィールドを格納するために最も一般的に使用されるデータ型は列挙型です。列挙型は、フィールドの値を限られたセットに制限できるデータ型です。

C言語の基本構文とデータ型の紹介 C言語の基本構文とデータ型の紹介 Mar 18, 2024 pm 04:03 PM

C 言語は、効率的で柔軟かつ強力な、広く使用されているコンピューター プログラミング言語です。 C 言語でのプログラミングに習熟するには、まずその基本的な構文とデータ型を理解する必要があります。この記事では、C言語の基本的な構文とデータ型を例とともに紹介します。 1. 基本構文 1.1 コメント C 言語では、コメントを使用してコードを説明し、理解と保守を容易にすることができます。コメントは、単一行コメントと複数行コメントに分類できます。 //これは 1 行のコメントです/*これは複数行のコメントです*/1.2 キーワード C 言語

主流のプログラミング言語における基本的なデータ型の分類を明らかにする 主流のプログラミング言語における基本的なデータ型の分類を明らかにする Feb 18, 2024 pm 10:34 PM

タイトル: 基本的なデータ型が明らかに: 主流のプログラミング言語の分類を理解する 本文: さまざまなプログラミング言語において、データ型は非常に重要な概念であり、プログラムで使用できるさまざまなデータ型を定義します。プログラマーにとって、主流のプログラミング言語の基本的なデータ型を理解することは、強固なプログラミング基盤を構築するための第一歩です。現在、ほとんどの主要なプログラミング言語はいくつかの基本的なデータ型をサポートしており、言語によって異なる場合がありますが、主な概念は似ています。これらの基本的なデータ型は、通常、整数などのいくつかのカテゴリに分類されます。

See all articles