1.函数声明与变量声明都会进行变量的声明与提升 2.function name(){}这种格式为函数声明 var x = function name(){}这是函数表达式,相当于变量赋值,也就是说此处的函数不会进行变量的声明与提升 3.函数声明会覆盖变量声明,但不会覆盖变量赋值 function name(){} var name; alert(typeof name)//结果为function 但如果是 function name(){} var name=1; alert(typeof na
1. return foo() foo 没有return值,故为undefined. 2. a b 在函数作用域内,外界找不到 var a = b =3; b 也算用var 声明了,只不过b 是在全局隐式var 了一个b ,在函数内部找不到变量的情况下就去全局找,全局找不到报错. 语法有错误,程序一句都不会执行,执行阶段有错误,会执行没错的代码,在执行出错的地方报错. 函数或则匿名函数体内声明变量是为了避免全局变量污染 重要例题: 函数没执行,全局没找到 b报错