首页>>后端>>java->js基础类型和引用类型?

js基础类型和引用类型?

时间:2023-12-01 本站 点击:0

JavaScript数据类型有几种?

在ES5的时候,我们认知的数据类型确实是 6种:Number、String、Boolean、undefined、object、Null。

ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。

谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。

JS数据类型:JS 的数据核局早类型有几种?

     8种。Number、String、Boolean、Null、undefined、object、改雀symbol、bigInt。

JS数据类型:Object 中包含了哪几种类型?

      其中包含了Data、function、Array等。这三种是常规用的。

JS数据类型:JS的基本类型和腊轮引用类型有哪些呢?

    基本类型(单类型):除Object。 String、Number、boolean、null、undefined。

    引用类型:object。里面包含的 function、Array、Date。

JS简单数据类型和复杂数据类型

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。

简单数据类型在存储时,变量中存储的是值本身,因此叫做值类型。

string、number、boolean、undefined、null

null是特殊存在,返回的是object,如果要创建空对象,可以用null。

用new创建的都是复杂数据类型

(1)栈:由操作系统自动答毁分配释放存放函数的参数值、局部变量的值等。其操作系统类似于数据结果中的栈。

简单数据类型存放到栈里清贺备面

(2)堆:一般由程序员分配释放,若程序员拍谨不释放,由垃圾回收机制回收。

复杂数据类型存放到堆里面

js知识版图-引用类型赋值、浅拷贝、深拷贝

我们先来复习下数据类型相关知识:

此处引申知识点:基本数据类型

这里所说的赋值是对象的引用赋值,当我们把一个对象赋值给一个新的变量时,赋的其实是该对象在栈中的地址,而不是堆中的数据。也就是两个对象指向的是同一个存储空间,无论哪个对象发生改变枯芦,其实都是改变的存储空间的内容,因此,两个对象是联动的。

浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。即默认拷贝构造函数只是对对象进行浅拷贝复制(逐个成员依次拷贝),即只复制对象空颤羡间而不复制资源。

由此可见浅拷贝只解决了第一层的问题,如果接下去的值中还有对象,两者享有相同的地址。

深拷贝会另外创造一个茄败拍一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/java/6465.html