# 不接收参数时,如果函数内部定义了变量,则使用在调用之前赋值的内部变量,如果未在调用之前赋值则为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