ES6数据传递的传值和传址

关于传值和传址先看一下代码段!

var a=5;
var b=a;
a=8;
console.log("a:"+a)
console.log("b:"+b)
console.log('------------------------------------------');
var obj={
	x:1,
	y:2
}
var test=obj;
test.y=222;
console.log("obj.x="+obj.x)
console.log("obj.y="+obj.y)
console.log("test.x="+test.x)
console.log("test.y="+test.y)

看一下控制台结果:

看一下上面一段代码,通过正常的理解确实这个样子,但是下面的代码我们只改变了test.y值而obj的也随之改变!这个样子是用于前一部分是传值,后面是传地址!    

传值:相当于把数值进行复制一遍,而传地址相当于把真实地址进行操作!

简单来说传值相当于在服务器上有个页面,把它可乐一份给你你进行修改,不影响服务器的结果,而传址则是直接在服务器开通了权限给另外一个人进行直接对这个数据操场,因此不过是谁对这个数据进行操作,都将改变!

传值适用于单一类型(Undefined,String,Number,Boolean,Unll),传址适用引用类型(Object)

注意虽然引用类型包含Object和Symbol,但是Symbol用于创建唯一的量,因此是没有意义的!

小结:单一类型赋值是传值,而引用类型是传址,但是在模块化,不管是引用类型还是大一类型,数据传输都是传地址,看一下下面的代码段!

模块文件a.js

 var a=0;
 
 setInterval(()=>{
     a=2
 },2000)
 export {a}

引入模块 b.js

import {a} from "./a.js";
console.log(a);//2

setInterval(()=>{
  console.log(a);//4
},4000)

很明显这样的结果不是我们认为的普通传值,如果是传值则这个a是0则无法改变,很明显传址,当模块的a改变了,这边也是改变了!这是一个传址。得出结论在模块化引用其他模块,无论是单一类型还是引用类型数据传输都是传址方式!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

嘀~正则表达式快速上手指南(下篇)

上面的代码中用 for 循环去遍历 contents 这样我们就可以一个一个处理每封邮件。我们创建一个字典, emails_dict,这将保存每个电子邮件的所有...

751
来自专栏肖洒的博客

Java面试笔记

Java最重要的特点就平台独立,平台独立意味着可以在一个系统编译它然后在另一个系统使用它。

942
来自专栏用户2442861的专栏

JSON 入门指南(IBM)

尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的...

1051
来自专栏技术记录

通讯协议序列化解读(一) Protobuf详解教程

前言:说到JSON可能大家很熟悉,是目前应用最广泛的一种序列化格式,它使用起来简单方便,而且拥有超高的可读性。但是在越来越多的应用场景里,JSON冗长的缺点导致...

1024
来自专栏算法channel

面试被问到动态内存分配时需要注意哪些坑,该怎么回答?

面试时,面试官问我们Java,Python这种语言那是必须要准确回答的,很多系统如果对性能要求高的话,底层一般会用到C/C++语言,因此被问到底层语言的相关知识...

1463
来自专栏Zephery

工厂模式

工厂模式 目录 何为工厂模式 工厂方法与抽象工厂 如何在Java EE中通过@Producers与@Inject注解实现工厂模式 如何创建自定义注解以及通过@Q...

42911
来自专栏技术记录

通讯协议序列化解读(一) Protobuf详解教程

前言:说到JSON可能大家很熟悉,是目前应用最广泛的一种序列化格式,它使用起来简单方便,而且拥有超高的可读性。但是在越来越多的应用场景里,JSON冗长的缺点导致...

1211
来自专栏大内老A

yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]

在定义API的时候,对于一些返回集合对象的方法,很多人喜欢将返回类型定义成IEnumerable<T>,这本没有什么问题。这里要说的是另一个问题:对于返回类型为...

1838
来自专栏IT派

Python字节码介绍

如果你曾经编写亦或只是使用Python语言,那么你可能已经习惯了看Python源码文件; 源码的文件名以.py结尾。或许你也已经注意到了另一种类型的文件,文件名...

2163
来自专栏Python小白进阶之旅

Python数据类型:双端队列deque-比列表list性能更高的一种数据类型

说到容器类型,大家第一时间想到的多半是list,而list确实也能解决大部分的需要,但碰到列表内的数据量相当大的时候,性能问题就显得尤为重要;再或者列表被恶意注...

1463

扫码关注云+社区

领取腾讯云代金券