ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の値の型の詳細な紹介
コンピュータプログラムの本質は、機械がさまざまな情報(値)を操作したり、読み書きしたりすることにあると言えるでしょう。 JavaScript には多くのタイプの値があり、プリミティブ (基本タイプ) とオブジェクト (オブジェクト) の 2 つの主要なカテゴリに分類されます。
プリミティブ
JavaScript には 5 種類のプリミティブがあります:
1.数値。整数であろうと小数であろうと、すべての数値は数値型です。
2.文字列。文字列型。
3.ブール値。ブール型、true または false。
4.ヌル。この型には値が 1 つだけあり、null です。
5.未定義。この型には値が 1 つだけあり、未定義です。
オブジェクト
プリミティブを除き、JavaScript のその他の値はオブジェクトです。オブジェクトには次のタイプがあります:
1. JSON キーと値のペア オブジェクト。 {"名前":"ボブ"、"年齢":42} など。
2. 配列。 [1,4,5,7,9] など。
3. 機能。 function(){return true;} など。 JavaScript には 2 つの形式の関数があります: 1. 実行可能なコード ブロック、2. クラス (クラス) のコンストラクター。どのような形式であっても、関数は常にオブジェクトです。
JS にはグローバル オブジェクトが付属しています
プログラムの作成を容易にするために、JavaScript にはグローバル オブジェクトが付属しています。このオブジェクトには次の 7 つのメンバー変数があり、それらはすべてオブジェクト型:
1.Math。一連の複雑な数学演算は、Math オブジェクトのメソッドを呼び出すことで完了できます。
2.番号。一部の特別な値は、Number オブジェクトのメンバー変数にアクセスすることで取得できます。
3.配列。配列オブジェクトのコンストラクター。
4.機能。関数オブジェクトのコンストラクター。
5.日付。日付オブジェクトのコンストラクター。
6.正規表現。正規表現オブジェクトのコンストラクター。
7.エラー。エラーオブジェクトのコンストラクター。
プログラムを書く際、上記7つの変数は直接アクセスできるため、グローバルオブジェクトとしても使用できます。
不変と可変
プリミティブとオブジェクトには明確な特性があります。すべてのプリミティブは不変で、すべてのオブジェクトは変更可能です。 String 型を例にとると、String メソッドを呼び出して編集した後、JavaScript は編集結果を新しい String オブジェクトに保存します。元の String オブジェクトは一切変更されません:
var s = "test"; s.toUpperCase();//return a new String object "TEST" console.log(s);//"test" -- original String s does not change
実験
JavaScript では、typeof キーワードを使用して値の型を取得できます。
数値の型を取得します:
var n = 42; console.log(typeof n);
プログラムの出力結果は数値です。
文字列の型を取得します:
var s = "test"; console.log(typeof s);
プログラムの出力結果は文字列です。
ブール値の型を取得します:
var b = true; console.log(typeof b);
プログラムの出力結果はブール値です。
null の型を取得します:
var x = null; console.log(typeof x);
プログラムは null を出力するはずですが、実際にはオブジェクトが出力されます。その理由は、null 値に対して typeof 操作を使用すると、プログラムが object を返すためです。これは、JavaScript の最初のバージョンから存在するバグです。 ECMAScript 標準の開発中に、このバグを修正するかどうかについていくつかの興味深い議論がありました。最終結論は、バグを修正するとあまりにも多くの Web サイトに問題が発生するため、当面は修正されませんでした。
未定義の型を取得します:
var y = undefined; console.log(typeof y);
プログラムの出力結果は未定義です。
JSON オブジェクトの型を取得します:
var j = {"name":"Bob", "age":42}; console.log(typeof j);
プログラムの出力結果はオブジェクトです。
配列オブジェクトの型を取得します:
var a = [2,3,5,7,11]; console.log(typeof a);
プログラムの出力結果はオブジェクトです。
関数オブジェクトの型を取得します。
var f = function(){return true;}; console.log(typeof f);
関数オブジェクトは特殊であり、typeof 演算子は結果を関数として返します。