JS数据类型有哪些?区别是什么?

发布于 2023-08-12 11:18:22 字数 1133 浏览 74 评论 0

在 JavaScript 中,数据类型可以分为两类:原始类型和对象类型。原始类型包括:数字(number)、字符串(string)、布尔值(boolean)、null、undefined 和 Symbol(ES6 新增),对象类型包括:对象(object)、数组(array)、函数(function)等。

区别如下:

  • 原始类型的值是不可变的,对象类型的值是可变的。
  • 原始类型的值是按值访问的,对象类型的值是按引用访问的。
  • 原始类型存储在栈内存中,对象类型存储在堆内存中。

原始类型

具体来说,数字、字符串、布尔值、null 和 undefined 是 JavaScript 中的五种原始类型,它们都是不可变的。每次对原始类型进行操作时,都会创建一个新的原始类型的值。例如:

let num1 = 10;
let num2 = num1 + 5;
console.log(num1); // 10
console.log(num2); // 15

在上面的例子中,对 num1 进行操作时并没有改变 num1 的值,而是创建了一个新的值 num2。

对象类型

对象类型则是可变的,因为对象、数组、函数等值是通过引用来访问的。例如:

let obj1 = { name: '张三' };
let obj2 = obj1;
obj2.name = '李四';
console.log(obj1.name); // "李四"
console.log(obj2.name); // "李四"

在上面的例子中,修改了 obj2 的属性值,但由于 obj1 和 obj2 指向的是同一个对象,所以 obj1 的属性值也被修改了。

Symbol

除了五种原始类型和对象类型外,ES6 新增了一种原始类型: Symbol 。它的主要作用是创建唯一的标识符。例如:

let s1 = Symbol();
let s2 = Symbol();
console.log(s1 === s2); // false

在上面的例子中,两个 Symbol 创建的值是不相等的,即使它们的值是一样的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

文章
评论
29 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文