JS变量赋值

Posted 时光spring

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS变量赋值相关的知识,希望对你有一定的参考价值。

一、基本数据类型: Number, String等都是按值传递

var a = 10
function add(num){
    num+=10
}
add(a)
console.log(a)

最后输出a时,仍然是10,说明a与函数内部的num互不干扰。其实此时可以把命名参数看成是局部参数,函数运行结束,它也随之销毁。而它是按值传递的,复制了内存中的一份值给num。所以内部对num的操作不影响全局变量a的值。

二、引用变量赋值

1.多个引用变量指向同一个对象, 通过一个引用变量修改对象内部数据, 另一个引用变量访问到的是修改后的对象

 var obj1 = {}
 var obj2 = obj1
 obj2.name = ‘Tom‘
 console.log(obj1.name)//Tom
function f1(obj) { obj.age = 12 } f1(obj2) console.log(obj1.age)//12

都是修改的同一个对象的属性

2. 多个引用变量指向同一个对象,让一个引用变量指向另一个对象, 另一个引用变量还是指向原来的对象

var obj3 = {name: ‘Tom‘}
var obj4 = obj3
obj3 = {name: ‘JACK‘}//obj3指向了另一个对象,此时obj4还是指向原来obj3当初指向的对象
console.log(obj4.name)//Tom
function f2(obj) {
   obj = {name: ‘Bob‘}
}
f2(obj4) console.log(obj4.name)//Tom

执行   f2(obj4)  时,obj指向obj4的地址,然后在函数体内obj又指向了另一个对象,obj4不受影响。

 

 

 

from:https://blog.csdn.net/weixin_39728230/article/details/80607294

以上是关于JS变量赋值的主要内容,如果未能解决你的问题,请参考以下文章

JS变量定义时连续赋值的坑!

填坑日记uni-app如何调用页面vue以外的js文件变量 - js如何赋值多行文字给变量

JS入门三

10.17JS日记

JS ES6的变量的结构赋值

10月17日 JS开始日~