JavaScript 中原始数据类型和非原始数据类型的区别

Difference between Primitive and non-primitive datatypes in JavaScript

我无法准确理解 JavaScript 中原始数据类型和非原始数据类型之间的区别,即使它是使用相同的名称声明的,即 var.

Data Types (JavaScript):

Primary Data Types
The primary (primitive) data types are:
String, Number, Boolean

Composite Data Types
The composite (reference) data types are:
Object, Array

Special Data Types
The special data types are:
Null, Undefined

点击here了解详情:

  var test1 = 1;
  var test2 = "Something";
  var test3 = true;
  var test4 = {};
  var test5 = new Array();
  var test6 = new Date();
  var test7;
  var test8 = null;

  alert(typeof (test1)); //number
  alert(typeof (test2)); //string
  alert(typeof (test3)); //boolean
  alert(typeof (test4)); //object
  alert(typeof (test5)); //object
  alert(typeof (test6)); //object
  alert(typeof (test7)); //undefined
  alert(typeof (test8)); //object

Java脚本有五种原始数据类型: 1. 号码 2.字符串 3. 布尔值 4.未定义 5.空

任何不属于这五种基本类型中的任何一种的都被视为对象。

前3种数据类型都有对应的对象构造函数。例如

var word = "something";

然后作为对象:

 var word = new String("something");

对于对象构造函数,请注意 new 关键字。它创建对象引用。

另一件需要注意的事情

var greeting = "something";
var word = new String("something");
greeting == word ----> True as their value is same
greeting === word -----> False because there value same but type is different .

至于 var 关键字在所有情况下都相同,请记住 Javascript 是动态类型语言。这意味着它在运行时而不是编译时解决数据类型检查(如 Java、C++)。

这使得javascript极其强大。虽然这个独特的特征也有缺点。请通过此维基百科了解详细信息: https://en.wikipedia.org/wiki/Type_system#Static_and_dynamic_type_checking_in_practice

希望对您有所帮助。

根据https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures

ES6 中的原始数据类型是: 布尔值 无效的 不明确的 数字 细绳 符号

另一种非原始数据类型是 对象

原始数据类型是不可变的值。

原始数据类型是 1. 号码 2.字符串 3. 布尔值 4.未定义 5.空

Non-Primitive 数据类型是 1.Object 2.Array 3.RegExp

原始数据类型 是由编程语言提供的作为基本构建块的类型。比如:数字、字符串、空值、未定义、布尔值。 原始数据类型在编译时获取内存分配。

派生数据类型 是从捆绑在一起的现有原始数据类型派生的类型,例如:数组、对象等。 派生数据类型仅获取对保存值的内存分配的引用。

最新的ECMAScript标准定义了八种数据类型:

  1. 字符串
  2. 布尔值
  3. 数量
  4. BigInt
  5. 未定义
  6. 符号
  7. 对象

注意:- 数组不属于此列表,因为它们也是对象。这是开发人员中常见的混淆,他们认为数组是 Javascript.

中的一种特殊数据类型

Now bifurcate the data type

JavaScript中有两种数据类型:

  1. 原始值(字符串、布尔值、数字、BigInt、Null、未定义、符号)

  2. 非原始值也称为对象引用(Object,Array)

很简单,只要记住原始数据类型是指包含单个值的数据类型,例如 1、'test'、true、

非原始数据类型是指包含多个值或复杂数据的数据类型,如对象等称为非原始数据