zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    机器学习之——正规方程法
    机器学习之——学习率
    机器学习之梯度下降法
    机器学习之线性回归算法
    集体智慧编程学习笔记——第一讲
    机器学习之归一化和标准化总结
    推荐系统实战-学习笔记第一章
    洛谷P1396 营救 题解
    洛谷P3905 道路重建
    洛谷P2384 最短路 题解
  • 原文地址:https://www.cnblogs.com/springa/p/12820833.html
Copyright © 2011-2022 走看看