# 不接收参数时,如果函数内部定义了变量,则使用在调用之前赋值的内部变量,如果未在调用之前赋值则为undefined,如果函数内部没有定义则引用外部变量
# 此种情况同python一样,但因python没有undefined,会报错
1 a=5 2 function foo() { 3 console.log(a) 4 var a=99 5 } 6 foo() 7 输出:undefined
# 接收参数时,若内部有对参数名的同名的函数定义,则替换为函数,否则使用参数
# 此种情况在python中,不会替换为函数,变量声明和函数声明具有相同的优先级
function foo(a) { console.log(a) var a=99 } foo(6) 输出:6 function foo(a) { console.log(a) var a=99 console.log(a) function a(){console.log(7)} var a=100 console.log(a) } foo(5) 输出: function a(){console.log(7)} 99 100