位置: 编程技术 - 正文
推荐整理分享Javascript 赋值机制详解(js赋值input),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:js赋值字符串,js赋值字符串,js赋值给div,js赋值input,js .value赋值,js .value赋值,javascript 赋值语句,js赋值函数,内容如对您有帮助,希望把文章链接给更多的朋友!
今天回答了一个关于 Javascript 的问题,涉及到了赋值问题,因此想把这个问题好好总结下。
执行上述代码后,变量 a 和 b 的值会发生改变吗?
原始值和引用值
在 之前的文章中介绍过原始值和引用值,原始值指的 Undefined, Null, Boolean, Number, String 等,它们存放在栈中,而引用值则集成自 Object,它被存放在堆中。这里要把两者区分清楚:
以上四个变量,a 和 A 为原始值,而 b 和 B 则为引用值。
赋值机制
清楚了原始值和引用值的区别后,就可以具体介绍 Javascript 的赋值机制:
在 Javascript 中,对于原始值类型的变量,每次赋值都将生成一份拷贝,而对于引用值,则正如其名,是通过引用赋值,指向同一个存储对象的内存处。原始值的赋值:
引用值的赋值:
参数传递
现在我们来看看传递两种类型的值给函数形参时时怎么处理的。1.传递原始值
输出为1,所以我们知道函数只是将变量的值传递进去了,所以在函数体内的 m 得到传来的值1,再被赋值为2,这个过程不影响外部的变量 a。
2.传递引用值
输出为2,所以我们知道函数将变量的地址传递进去了,所以函数体内的 M 得到传递来的地址,因此属性 x 被赋值为2的同时也会影响指向同一内存地址的 A。
总结
现在再回到开篇的问题:
变量 a 为原始值,变量 b 为引用值,传递进函数体内一个为值,一个为地址,所以函数运行后,变量 a 不会改变,而变量 b 的值将会改变。
Javascript学习笔记之数组的遍历和 length 属性 尽管数组在Javascript中是对象,但是不建议使用forin循环来遍历数组,实际上,有很多理由来阻止我们对数组使用forin循环。因为forin循环将会枚举原型链
Javascript学习笔记之数组的构造函数 数组的构造函数由于数组的构造函数在处理参数时的不确定性,因此强烈建议使用[]符号来创建一个新数组。[1,2,3];//Result:[1,2,3]newArray(1,2,3);//Result:[1,2,3][
Javascript学习笔记之相等符号与严格相等符号 Javascript有两种方法来判断两种值是否相等。相等符号相等符号由两个等号组成:==Javascript是弱类型语言。这就意味着相等符号为了比较两个值将会强制
标签: js赋值input
本文链接地址:https://www.jiuchutong.com/biancheng/384808.html 转载请保留说明!友情链接: 武汉网站建设