数码资讯
Javascript中基本类型与引用类型的区别分析
基本类型和引用类型 ECMAscript中包含的值的两种不同的类型:基本类型的值和引用类型的值。一个基本类型的值是一个简单的数据段;引用类型的值是指一个由多个值对象。当我们分配一个变量,一个变量,解析器必须做的第一件事就是确认该值是否基本类型的值或参考值类型。 五种常见的基本数据类型是: undif
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
基本类型和引用类型
ECMAscript中包含的值的两种不同的类型:基本类型的值和引用类型的值。一个基本类型的值是一个简单的数据段;引用类型的值是指一个由多个值对象。当我们分配一个变量,一个变量,解析器必须做的第一件事就是确认该值是否基本类型的值或参考值类型。
五种常见的基本数据类型是:
undifined,null,布尔值、数字和字符串的。这五种基本的数据类型可以直接操作的实际值存储在变量。
请看下面的例子:
var a=10;
var;
b=20;
console.log(一); / / 10
var =真的;
Var BL1 = BL;
BL1 = false;
console.log(BL); / /真的
在上面,B获取值是a值的副本,虽然两个变量的值相等,但是两个变量保存了两个不同的基本数据类型值。b只是保存了一个副本的副本。因此,当B的值发生变化时,a的值仍然是10。
下一步,两个布尔变量,BL和BL1,也基本数据类型。它们还存储两种不同的基本数据类型值。BL1保存一份副本提单副本。
下图演示了这个基本数据类型分配的过程:
请看下面的引用类型数据:
Javascript是指存储在堆内存中的数据类型。与其他语言不同,你不能直接访问堆内存空间和操作空间位置。引用的地址在栈内存只能通过对象操作,所以数据的引用类型,在栈内存,实际上是在堆内存中的对象的引用地址。通过这个地址,你能很快发现存储在堆内存的对象。
请看下面的例子:
var obj1 =新的对象();
var obj2 = obj1;
obj2.name =我有名字。
console.log(obj1。名称); / /我的名字
从上面的例子中,我们声明一个引用数据类型变量,以此,并将它分配给另一个引用数据类型变量,obj2。当我们添加一个name属性我们obj2和赋值的我有一个名字。以此也有相同名称的属性作为obj2。两个参考数据类型变量指向同一个堆内存分配object.obj1 obj2,实际上拷贝的堆栈内存堆内存对象的引用地址obj2的副本,但实际上是指向同一个堆内存对象。
下面让我们展示引用的数据类型分配过程:
当然,添加name属性obj2实际上是添加name属性在堆内存的对象。obj2和obj1仅仅存储在堆栈内存堆内存对象的引用地址,虽然这是一个复制品,但对象是相同的。因此,obj2的变化引起的变化,以此。
一般来说,基本的数据类型是一个固定数量的字节,这些字节可操作如数量和布尔是底层解析器;和引用数据类型,可以包含任意数量的属性和元素,所以他们不喜欢,是非常容易操作的基本数据类型,因为价值的引用数据类型会发生变化,所以通过相同的值作为基本的数据类型是毫无意义的,因为它会涉及到很多的内存拷贝和比较,和效率太低。因此引用数据类型的引用传递方式通过,和实际的转移只是一个地址的对象。例如,数组和函数都是引用类型,因为他们都是特殊的对象此外,引用类型可以添加属性。虽然基本类型可以添加属性或错误报告,但在添加测试后无法访问。
请看下面的代码:
var a=12;
a.name =我;
console.log(a.name); / /未定义
字符串一种特殊的基本数据类型
在许多语言中,字符串是以对象的形式表达,但不是在ECMAscript。字符串是一种基本的数据类型,但它是一种相对基本的类型。
看起来字符串应该用作引用类型,但实际上它不是,因为它不是一个对象,所以它看起来应该是基本数据类型,应该是传递值的方式。
请看下面的例子:
VaR策略=这是一个字符串;
变量strB =战略;
战略=这是另一个字符串;
console.log(全球); / /这是一个字符串
在上面的例子中我们看到,似乎一份战略给STRB的值传递方式。当策略改变,会不会改变,我们似乎可以得出这样的结论是一个字符串的基本数据类型。
然而,由于字符串可以是任意长度和按值传递,所以一个副本的复制效率仍然很低。似乎字符串也可以用作引用类型。
请看下面的例子:
var a =myobject;
a.name =我;
console.log(a.name); / /未定义
结果表明字符串不能作为对象处理。事实上,Javascript中的字符串不能更改,Javascript不提供任何方法和语法来更改字符串。
var a =myobject;
a a.substring(3,5)
console.log(一); / /北京
记住,在字符串myobject 无变化
可以说,字符串实际上并不符合上述两种数据类型,它是两个属性之间的一种特殊类型。
以上是本文的全部内容,希望大家能喜欢。
ECMAscript中包含的值的两种不同的类型:基本类型的值和引用类型的值。一个基本类型的值是一个简单的数据段;引用类型的值是指一个由多个值对象。当我们分配一个变量,一个变量,解析器必须做的第一件事就是确认该值是否基本类型的值或参考值类型。
五种常见的基本数据类型是:
undifined,null,布尔值、数字和字符串的。这五种基本的数据类型可以直接操作的实际值存储在变量。
请看下面的例子:
var a=10;
var;
b=20;
console.log(一); / / 10
var =真的;
Var BL1 = BL;
BL1 = false;
console.log(BL); / /真的
在上面,B获取值是a值的副本,虽然两个变量的值相等,但是两个变量保存了两个不同的基本数据类型值。b只是保存了一个副本的副本。因此,当B的值发生变化时,a的值仍然是10。
下一步,两个布尔变量,BL和BL1,也基本数据类型。它们还存储两种不同的基本数据类型值。BL1保存一份副本提单副本。
下图演示了这个基本数据类型分配的过程:
请看下面的引用类型数据:
Javascript是指存储在堆内存中的数据类型。与其他语言不同,你不能直接访问堆内存空间和操作空间位置。引用的地址在栈内存只能通过对象操作,所以数据的引用类型,在栈内存,实际上是在堆内存中的对象的引用地址。通过这个地址,你能很快发现存储在堆内存的对象。
请看下面的例子:
var obj1 =新的对象();
var obj2 = obj1;
obj2.name =我有名字。
console.log(obj1。名称); / /我的名字
从上面的例子中,我们声明一个引用数据类型变量,以此,并将它分配给另一个引用数据类型变量,obj2。当我们添加一个name属性我们obj2和赋值的我有一个名字。以此也有相同名称的属性作为obj2。两个参考数据类型变量指向同一个堆内存分配object.obj1 obj2,实际上拷贝的堆栈内存堆内存对象的引用地址obj2的副本,但实际上是指向同一个堆内存对象。
下面让我们展示引用的数据类型分配过程:
当然,添加name属性obj2实际上是添加name属性在堆内存的对象。obj2和obj1仅仅存储在堆栈内存堆内存对象的引用地址,虽然这是一个复制品,但对象是相同的。因此,obj2的变化引起的变化,以此。
一般来说,基本的数据类型是一个固定数量的字节,这些字节可操作如数量和布尔是底层解析器;和引用数据类型,可以包含任意数量的属性和元素,所以他们不喜欢,是非常容易操作的基本数据类型,因为价值的引用数据类型会发生变化,所以通过相同的值作为基本的数据类型是毫无意义的,因为它会涉及到很多的内存拷贝和比较,和效率太低。因此引用数据类型的引用传递方式通过,和实际的转移只是一个地址的对象。例如,数组和函数都是引用类型,因为他们都是特殊的对象此外,引用类型可以添加属性。虽然基本类型可以添加属性或错误报告,但在添加测试后无法访问。
请看下面的代码:
var a=12;
a.name =我;
console.log(a.name); / /未定义
字符串一种特殊的基本数据类型
在许多语言中,字符串是以对象的形式表达,但不是在ECMAscript。字符串是一种基本的数据类型,但它是一种相对基本的类型。
看起来字符串应该用作引用类型,但实际上它不是,因为它不是一个对象,所以它看起来应该是基本数据类型,应该是传递值的方式。
请看下面的例子:
VaR策略=这是一个字符串;
变量strB =战略;
战略=这是另一个字符串;
console.log(全球); / /这是一个字符串
在上面的例子中我们看到,似乎一份战略给STRB的值传递方式。当策略改变,会不会改变,我们似乎可以得出这样的结论是一个字符串的基本数据类型。
然而,由于字符串可以是任意长度和按值传递,所以一个副本的复制效率仍然很低。似乎字符串也可以用作引用类型。
请看下面的例子:
var a =myobject;
a.name =我;
console.log(a.name); / /未定义
结果表明字符串不能作为对象处理。事实上,Javascript中的字符串不能更改,Javascript不提供任何方法和语法来更改字符串。
var a =myobject;
a a.substring(3,5)
console.log(一); / /北京
记住,在字符串myobject 无变化
可以说,字符串实际上并不符合上述两种数据类型,它是两个属性之间的一种特殊类型。
以上是本文的全部内容,希望大家能喜欢。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。