摘要:打开首先看简单数据类型拿举个栗子看懂这一段应该不难。我们把基本数据类型中的这种操作称为拷值,方便记忆。总结简单数据类型用拷的,复杂数据类型用借的。
本篇不详细介绍每种数据类型的用途,如有需要请访问JS数据类型。
JavaScript中的数据类型简单(基本)数据类型: Number、String、Boolean、Undefined、Null
复杂(引用)数据类型: Object、Array等
简单数据类型用拷的,复杂数据类型用借的。
怎么理解这句话呢 看几个栗子就懂了。
打开console
首先看简单数据类型 拿Number举个栗子
看懂这一段应该不难。
首先我们声明了Number型变量a并将它赋初值为1。
又声明了变量b同时把a赋给b。
此时b的值与a的值相同。这里是符合我们正常思维习惯的。
接着我们修改了b的值为2。
打印a 发现a的值并没有发生改变。
这是不是就很奇怪了。
a与b不该是一直相等的吗?
这是因为 简单(基本)数据类型是按值访问的,因为可以直接操作保存在变量中的实际值。
通俗点说,上面的b只是保存了a的一个副本(或者说是拷贝),所以b的改变对a没有影响。
我们把基本数据类型中的这种操作称为拷值,方便记忆。
再随便举一个简单数据类型的例子,加深理解
接下来看复杂数据类型 或者叫它引用数据类型
Array(数组)和Object(对象)在编码过程中会大量使用。是两个非常强大的数据结构。
废话少说看栗子。
也就是说,复杂数据类型是按引用访问的。在我们的例子中,相当于变量b把a的值借过来,所以b的改变也会影响到a。
十分浅显易懂。无需多做解释。
总结:简单数据类型用拷的,复杂数据类型用借的。所以当我们声明变量并将其赋给另外一个变量时,如果后续要更新变量的值,要考虑到还有这种骚操作。
后续会更新这种现象的原理。再说吧。先知道有这么回事儿。避免被坑。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/108020.html
摘要:什么是接口测试全称接口是一个位于复杂系统之上能简化任务,像中间人一样不需要你了解详细的所有细节。接口测试与性能测试之间存在接口性能测试,主要通过来进行压测。 很多小...
摘要:看下面一个例子优点使用构造器函数的好处在于,它可以在创建对象时接收一些参数。按照惯例,构造函数的函数名应始终以一个大写字母开头,以区分普通函数。返回该对象的源代码。使您有能力向对象添加属性和方法。 基本概念 ECMA关于对象的定义是:无序属性的集合,其属性可以包含基本值、对象或者函数。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 类 在现实生活中,相似的对象之间往往都有...
摘要:不是引用类型,无法输出简而言之,堆内存存放引用值,栈内存存放固定类型值。变量的查询在变量的查询中,访问局部变量要比全局变量来得快,因此不需要向上搜索作用域链。 赞助我以写出更好的文章,give me a cup of coffee? 2017最新最全前端面试题 基本类型值有:undefined,NUll,Boolean,Number和String,这些类型分别在内存中占有固定的大小空...
摘要:基本数据类型中有种简单数据类型也称基本数据类型,,,和。不支持任何创建自定义类型的机制,而所有值都是上述中数据类型之一。 基本数据类型 ECMAScript中有5种简单数据类型(也称基本数据类型):Undefined,Null,Boolean,Number和String。还有一种复杂数据类型(引用型)Object。ECMAScript不支持任何创建自定义类型的机制,而所有值都是上述6中...
阅读 1167·2021-11-24 09:38
阅读 2567·2021-09-27 14:00
阅读 1125·2019-08-30 15:55
阅读 1312·2019-08-30 14:16
阅读 1455·2019-08-30 10:54
阅读 2839·2019-08-28 17:58
阅读 724·2019-08-26 13:22
阅读 1186·2019-08-26 12:01