yanxiaoge
<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>

图示:

 

相关文章:

  • 2018-04-24
  • 2021-12-31
  • 2021-09-12
  • 2021-05-13
  • 2021-11-14
  • 2021-12-24
  • 2021-12-28
  • 2021-05-25
猜你喜欢
  • 2020-04-29
  • 2021-06-25
  • 2019-03-10
  • 2021-11-30
  • 2021-12-26
  • 2021-12-21
  • 2021-10-11
相关资源
相似解决方案