• JavaStrip和python的变量存储位置


    <script>
        var a =1
        function a() {
            console.log("sdfdsf")
        }
        a()
    </script>
    Uncaught TypeError: a is not a function

    原因在于javescript先定义了函数名(函数声明优先于变量声明),在定义变量名,所以先定义函数 a() ,有定义了 变量 a ,导致 a() 函数 被覆盖(解决:变量名不和函数名重复)

    a = 1
    def a():
        print("sdfsd")
    
    a()
    <<<sdfsd

    对于pyhton来说正常的自上而下定义

    a = {}
    b = c = a
    c["x"] ="y"
    print(a,b,c)    <<<{'x': 'y'} {'x': 'y'} {'x': 'y'}
    c = "d"
    print(a,b,c)  <<<{'x': 'y'} {'x': 'y'} d

    图示:

    三个变量指向同一个内存地址,任何一个变量对他们修改,都是修改的是同一个内存地址中的值

    <script>
        var a ={a:"1"}  //key 可以不加双引号
        var b = a
        a.x = a = {a:"2"}   //相当给字典添加了一个key(a) val({a:"2"}) 现在字典对象变成{a:"1",x:{a:"2"}},变量名a 指向--{a:"1"}  变量名b指向--{a:"1",x:{a:"2"}}
    
        console.log(a.x)   //undefined
        console.log(b.x)   //{a: "2"}
        console.log(a)     //{a: "2"}
        console.log(b)     //{a:"1",x:{a:"2"}}
    </script>

    图示:

  • 相关阅读:
    认识jeecms开源项目
    初识eclipse及配置相关
    Html5 Video的使用
    实现渐变色案例
    区域路由的注册机制
    MVC特性路由的提供机制
    再谈async与await
    同步 VS 异步
    C#多线程中的异常处理
    C#多线程基础
  • 原文地址:https://www.cnblogs.com/yanxiaoge/p/10488174.html
Copyright © 2020-2023  润新知