JavaScript データ型の概要

不言
リリース: 2019-03-23 09:33:47
転載
2182 人が閲覧しました

この記事では、JavaScript データ型について詳しく説明します。これには一定の参考値があります。必要な友人は参照できます。お役に立てば幸いです。

私は最近 3 人の開発者にインタビューしましたが、誰も JS の基本的な種類が何であるかを明確に説明できませんでした。また、int、float、double、その他のデータ型など、一部の C 言語データ型について誤って言及することがよくあります。

どの言語であっても、データ型に習熟することがこの言語の最も基本的な知識点です

JS データ型は 2 つのカテゴリに分類され、1 つは基本型です。 、

  • Number
  • String
  • Boolean
  • Unknown
  • Null
  • Symbol## があります。
#js には基本的な型がいくつかしかなく、さらに他の型はオブジェクトです。

Number型

JSにはinteger、float、double型の値は存在せず、すべての値をNumber型と呼びます。

JS は、IEEE754 形式を使用して整数と浮動小数点数を表現します。一般的に、整数は 32 ビットを占有し、浮動小数点数は 64 ビットを占有します。浮動小数点数は整数の 2 倍のメモリ空間を占有するため、js は浮動小数点数を整数に適切に変換して保存します。

4.0 === 4 // true
ログイン後にコピー
数値型にはすべてサイズ範囲があります

Number.MAX_VALUE  // 1.7976931348623157e+308
Number.MIN_VALUE // 5e-324
Number.MAX_SAFE_INTEGER // 9007199254740991
Number.MIN_SAFE_INTEGER // -9007199254740991
ログイン後にコピー
浮動小数点数では一般に計算結果が不正確になります。これは JS の問題ではなく、すべての言語に存在します。

計算

0.1 0.2 === 0.3この結果は常に false です。

浮動小数点数が等しいかどうかを比較するには、

Number.EPSILON を使用できます。Number.EPSILON は非常に小さな値です。2 つの浮動小数点数が Number.EPSILON より小さい場合、あなたは平等であるとみなされることができます。

Math.abs(0.1 + 0.2 - 0.3) < Number.EPSILON // true
ログイン後にコピー
数値型には特別な兄弟が 3 つあります

    無限大数値型の最大値を超えると正の無限大になります
  1. -無限大 数値型が数値型の最小値より小さい場合、負の無限大になります
  2. NaN NaNは数値ではないことを意味します 例えば、ある値を0で割ると、通常の言語ではエラーが報告されますが、js ではエラーが報告されず、変数の値は NaN になります。
数値型がこれら 3 兄弟になると、以降の数値演算に参加できなくなります。

文字列型

静的言語を学習した学生は、文字列に遭遇すると質問します。「文字列はいくつ保持できますか?」

文字列は愚かな笑みを浮かべて言いました:私が生まれて以来、文字列が埋められたことはありません!

ECMAScript 2016 (ed. 7) では、最大長が 2^53 - 1 要素に設定されています。 、最大長が指定されていません。Firefox では、文字列の最大長は 2
30 - 2 (~1GB) です。Firefox 65 より前のバージョンでは、最大長は 228 - 1 (~256MB) でした。 --MDN
Boolean

ブール値は非常に単純で、false と true の 2 つの値だけです。しかし、多くの人はどの値が false に変換されるのか完全に答えることができません。

false に変換できる以下の値を除き、その他の値はすべて true です。

false
''
NaN
undefined
0, -0, +0
null
ログイン後にコピー
unknown および null

unknown は、変数が定義されているが値が割り当てられていないことを示します。 null は、変数がまったく定義されていないことを意味します。つまり、undefineにしてもnullにしても、基本的には使用できない値です。

null 型には特別な機能があります。たとえば、多くの属性を持つオブジェクトがある場合、この変数をガベージ コレクションの準備ができているとマークしたい場合は、その値を null に設定できます。

最も身近な見知らぬ人: オブジェクト

私はかつてオブジェクトが js の中で最も単純だと考えていましたが、実際には私は甘すぎました。
// 定义一个对象,so easy
var boy = {
  name: 'wangduanduan'
}
ログイン後にコピー
rree
オブジェクトのデータ属性

データ属性デフォルト値説明configurabletruedeleteenumerable## を使用してこの属性を削除できるかどうかを示しますwritablevalueIf configurable、enumerable、writable を指定せずに Object.defineProperty を呼び出すと、それらのデフォルト値はすべて false になります。
#true この属性がループ内の for を通過できるかどうかを示します
true この属性をトラバースできるかどうか Modified
未定義 この属性のデータ値を示します

アクセサー属性

アクセサー属性は get であり、set を使用すると、値の読み取りまたは書き込み時にインターセプト層を実行できます。

var boy = {}
Object.defineProperty(boy, 'name', {
 writable: false,
 value: 'wdd'
})
boy.name = 'ddw' // 设置不会生效,boy.name的值还是wdd
ログイン後にコピー

上の _sex を sex に変更するとどうなるか考えてください。

var man = {
    _sex: 1
}
Object.defineProperty(man, 'sex', {
 set: function (v) {
     this._sex = v === '男' ? 1 : 0
 },
 get: function () {
     return this._sex === 1 ? "男" : "女"
 }
})
nam.sex // 男
ログイン後にコピー

この記事はここで終了しています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの

JavaScript ビデオ チュートリアル

列に注目してください。

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

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート