当前位置:首页 > 日记 > 正文

变量、值、地址和Javascript参数之间的关系

变量、值、地址和Javascript参数之间的关系
让我们先收割庄稼吧。

的1.javascrip变量包含两种类型的值,一个是引用类型的值,和其他的基本类型的值,引用类型包括:数组、对象、功能(这是可以理解的,非基本类型都是引用类型);5种基本类型包括:undefined空字符串、布尔、数。

2参数传递的机理。函数是复制变量的值。

书中说:将函数外部的值复制到函数内部的参数中,并将值从一个变量复制到另一个变量。基本类型的转移与基本类型变量的副本相同,而引用类型与引用类型变量的副本相同。

当一个变量复制引用类型的值,变量中存储的对象的值的副本也被分配到新的变量的空间复制的。不同的是,这个值的副本实际上是一个指针,指针指向的对象存储在堆中,在复制操作说完,两变量实际上指的是同一个对象,所以改变一个变量会影响另一个变量。

{注释:复制引用类型的值是地址)

3。参数实际上是函数的局部变量。

不是

基本概念的解释:

传输值:传递A到B的值,改变B,A不会改变,B是和A相同的值;

地址:发送A到B的地址,改变B,A同时改变,B只是A的地址(类似于计算机的快捷方式)。

值类型(值类型)数据存储在堆栈中的变量中,也就是说,内存空间是在堆栈中分配的,并且值是直接存储的,并且值由数据本身来表示。值类型的数据具有更快的访问速度。

一个引用类型数据(引用类型)不居住在栈中,而是存储在堆中。它是在堆中分配内存空间,不直接存储所蕴含的价值,但点的值被存储,其值表示的地址是直接访问的。数据引用类型时,您需要检查该变量的内容在堆栈,它是指在堆一个真实的数据,数据率的引用类型的数据类型具有较大的存储容量和存取速度较低。

不是

这里有三个问题。

问题1:为什么在A(a)函数执行后,外部A没有干扰
var = { 1, 2, 3 };
函数更改(a){
console.log(一); / / {1,2,3}
a = 2; /
console.log(一); / / 2
}
改变(a);
console.log(一); / / {1,2,3}
问题1答:因为改变(A)以这种方式执行,对象A(数组)首先传递给改变,并被复制到参数A的变化。然后A = 2是赋值语句,它变成一个值。A = 2此时是一个值类型,并且不涉及引用地址的问题。因此它不影响外部A。

问题2:为什么在更改(a)函数执行后外部受到干扰
var = { 1, 2, 3 };
函数更改(){
a = 2; /
}
变化();
console.log(一); / / 2
2答:执行变更时,()函数时在其执行环境的寻找范围链,活动对象(活动对象)不包括变量,然后在作用域链中找到,找到全局执行环境,找到变量,所以在这个时间函数的内部和外部的一个一个内存地址一样,自然的功能,内部的变化,外部将遵循。

解析:问题2和问题1之间的区别在于问题2不引入参数,因此它不涉及复制变量。

问题3:为什么在更改(a)函数执行后外部受到干扰
var = { 1, 2, 3 };
函数变化(b){
b { 0 } = 2;
}
改变(a);
console.log(一); / / { 2,2,3 }
问题3答:这个和问题1非常相似,但只有不同的是A = 2,变为0 { } = 2,我一开始很困惑,不是说复制吗参数B应该是一个拷贝值,它如何影响外部

事实上,当执行更改函数时,参数B是A的拷贝值,因为A是一个引用类型,函数的内部是由B和a通过引用访问的地址对象。b 0 { }=2的外观不影响b和a在函数中引用的同一对象。

问题4:为什么在A(A)函数执行之后,外部A没有受到干扰
var = { 1, 2, 3 };
函数变化(b){
console.log(B); / / {1,2,3}
b=2;
b { 0 } = 2;
}
改变(a);
console.log(一); / / {1,2,3}

问题4答:变化(B)的执行过程是这样的,一个对象通过改变功能和拷贝到注2地址的值,当B是值类型,它没有解决地址参考问题。之后,B { 0 } = 2实际上是没有意义的,因为B不是数组的那一刻,自然没有这样的索引方式B { 0 }。所以B和实际上消失后,B = 2.at此时外面仍然是{ 1,2,3之间的地址引用关系};

以上是本文的全部内容,希望大家能喜欢。

相关文章

模仿英文手写汉字的时尚与时尚

模仿英文手写汉字的时尚与时尚

汉字,英文,时尚,电脑软件,本教程主要用插画来模仿时尚、潮流和霸道的英文书法艺术字课程。整体效果非常漂亮。原来的图片是一个流行的字体海报国外。萧边推荐它。让我们一起享受吧。 本教程是介绍一个朋友插画,复制时尚霸道英文手写字的艺…

如何打印指定单位Excel2003教程Exc

如何打印指定单位Excel2003教程Exc

教程,单位,电脑软件,Excel 2003是一个电子表格程序,它提供对XML和新功能的支持,使分析和信息共享更加方便。Excel 2003中的智能标记比微软Office更灵活,而统计功能的改进使您能够更有效地分析信息。 Office Excel 2003是微软公司开发的一个电…

一个解决的怪,mouseover事件引发的

一个解决的怪,mouseover事件引发的

元素,事件,小鼠,电脑软件,mouseover,我想达到这个目标:当鼠标进入黑盒时,橙色方块会淡入淡出动画;当黑盒在范围内移动(即使粉红色的盒子没有动画),当鼠标移动时,橙色方块消失。 讨论的问题是:当鼠标移动到黑盒,橙盒执行淡出动画,但当鼠标从黑盒的粉…

PS图象处理软件是如何使小而精致的

PS图象处理软件是如何使小而精致的

图象,质感,处理软件,小而,金色,字体选择在制作文本效果时也很重要。例如,下面的文本具有三维效果。作者采用小变形排版,复制并使用图层样式加纹理。效果非常好。 1、新文件、输入文本、字母用数值分隔。 2,调整字母位置。 三.文件变形-扇形- 1…

ai绘制漂亮的矢量花纹元素教程

ai绘制漂亮的矢量花纹元素教程

元素,教程,绘制,矢量,花纹,本教程介绍了一个朋友ai绘制漂亮的矢量模式元素。教程制作的模式元素非常漂亮,难度也不是很大。 本教程是一个比较简单的人工智能教程!本教程是用ai工具在贝壳中完成扇贝,有些含有过多的渐变色元素,如花在人工智能中…

在Word2007打印检查网页布局方法Wo

在Word2007打印检查网页布局方法Wo

方法,检查,网页布局,教程,电脑软件,在Office Word中,您可以轻松地预览打印后布局的外观,而不实际打印它。 在屏幕上显示的打印图像称为打印预览;。 即使打印机没有连接到计算机,它也可以显示打印预览; 显示打印预览 1。点击 (Office按钮),指向打印,…

PS图象处理软件在中国走的董事会决

PS图象处理软件在中国走的董事会决

董事会,中国,图象,处理软件,电脑软件,本教程介绍朋友给PS图象处理软件创造中国围棋盘的方法。本教程制作的围棋盘非常好。建议喜欢的朋友可以随本教程学习。 以下是介绍PS图象处理软件中国围棋盘制作效果的教程,很不错,推荐,大家一起学习吧! 方…

QQ怎么办不常见QQ问题

QQ怎么办不常见QQ问题

常见,电脑软件,QQ,有很多朋友经常网络经常遇到的QQ登录并不是个案,其中大部分是因为网络的原因,最重要的是看到QQ不能登录,错误代码0x00000001,后来遇到了QQ不在以下小新手朋友介绍标志。 如果你发现QQ不登录,首先检查计算机网络来说是正常的,,你…

PS图象处理软件生产的一种真实细腻

PS图象处理软件生产的一种真实细腻

布朗,图象,处理软件,细腻,球迷,课程的重点是类似于棕榈叶纹理的制作。这里使用光纤和径向模糊滤镜。获得初始纹理后,将此纹理应用到风扇并调整颜色。 这门课的重点是制作棕叶纹理。这里使用光纤和径向模糊滤镜。获得初始纹理后,将此纹理应用…

Word2003检查新的智能标记方法Word

Word2003检查新的智能标记方法Word

方法,检查,智能标记,教程,电脑软件,Word2003检查新的智能标记的方法。额外的智能标签(智能标签:标识为特殊类型的数据,例如,一个人的名字或最新的微软Outlook电子邮件的收件人是一种数据类型,可以标识与智能标记。)及其操作可以由微软或第三方公…

如何在WPS文本中设置标尺以显示WPS

如何在WPS文本中设置标尺以显示WPS

文本,显示,设置,教程,标尺,在WPS中,有一个标尺工具,可以用来调整文件的间距,方便我们编辑的文章,但是很多朋友找不到尺子,下面的小编辑告诉你如何在WPS文本中设置一个标尺。 1,其实方法很简单,首先打开WPS,默认情况下我们不显示尺子。 2,单击视图菜…

非主流签名非主流签名非主流2015qq

非主流签名非主流签名非主流2015qq

非主流,电脑软件,qq,和你一起走到最后一个人的人往往是你想象不到的人。 爱是俘虏的爱,但要保留它。 从那以后的所有道路上 记住我的名字和我带给你的故事 你还欠我一句对不起,但我不会再说了。 我是疯子疯子,只爱你疯了,你是傻瓜,傻瓜傻瓜,傻但…