设计公司简介范文,seo做网站赚钱吗,福田欧曼前四后八,汕头百度网站推广在JavaScript中#xff0c;数据类型被分为“基本数据类型”和“引用数据类型”两大类。基本数据类型包括数值型、字符型、逻辑型、未定义型(undefined)、空型(null)和ES6新增的Symbol类型#xff0c;引用数据类型包括数组、对象和函数。 当我们在程序中执行变量赋值操作的时候…在JavaScript中数据类型被分为“基本数据类型”和“引用数据类型”两大类。基本数据类型包括数值型、字符型、逻辑型、未定义型(undefined)、空型(null)和ES6新增的Symbol类型引用数据类型包括数组、对象和函数。 当我们在程序中执行变量赋值操作的时候基本数据类型变量的赋值与引用数据类型变量的赋值是不一样的。 【1】基本数据类型变量的赋值。 仔细阅读下列代码 let a15; let ba; console.log(a,b); b100; console.log(a,b); 在本段代码中第一句声明变量a并赋值为15第二句声明变量b并将变量a的值赋给变量b即变量b的值来源于变量a。此时输出语句在控制台中会输出两个15。紧接着改变变量b的值为100继续输出两个变量的结果为15,100。 【2】引用数据类型变量的赋值。 上述看似合理的赋值操作放在引用数据类型中就会变得不那么简单了仔细阅读下列代码 let a[10,20,30] let ba; console.log(a,b); b[0]841; console.log(a,b); 在本段代码中第一条输出语句会在控制台中会输出两个[10,20,30]数组。第二条输出语句会在控制台中输出[841,20,30]数组即对数组元素b[0]的修改也影响了数组a的数组元素a[0]。这和普通数据类型的赋值完全不一样在JavaScript中被称为引用数据类型的“浅拷贝”。 【3】从变量的本质理解浅拷贝。 浅拷贝只会发生在引用数据类型中这是因为引用数据类型变量和基本数据类型变量的本质是不同的。我们都知道变量本质上是在内存中开辟的存储空间。JavaScript为基本数据类型变量开辟真实的空间用来存储赋值的数据;而为引用数据类型变量只开辟用来存储指向数据本身的地址的空间即引用数据类型变量在内存中存储的是数据的地址并不是数据本身。所存储的数据的地址也被称为“数据的引用”。 这就是说变量a存储的是数组[10,20,30]的引用即地址当把变量a赋值给变量b时是把a中存储的数组的地址赋给了变量b即变量b中存储的也是数组的引用也就是说变量a和b同时指向了一个数组。 这样一来通过变量b对数组元素的修改也会反应在变量a中浅拷贝的产生就是这样的原理造成的。 原理是学习一门编程语言最为重要的内容是彻底理解程序运行机制的唯一途径在前端开发的学习过程中尤为重要。