jsbin下运行的的代码出错。
var a;
function a () {} // SyntaxError: redeclaration of var a
补充:
像var、函数定义会造成重复定义吗?
不是在同一个作用域下let和const才有重复定义的问题吗?
在jsfiddle下上面的代码就没有问题,不知道jsbin对代码做了上面转换?
jsbin将js代码放在了try{}中,形成一个块级作用域,如
try {
var a;
function a () {}
} catch (e) {
throw e
}
所以这里涉及到了块级作用域下函数的申明,详细问题见 关于块级作用域的问题