JS数据类型有哪些?区别是什么?
在 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论