js允许同一个变量上下文中类型不一样你在初次调用c()时,由于函数提升,所以不会报函数没有定义的错误但是你紧接着定义了一个变量c函数c就被覆盖了,无法访问了之后你再次调用c(),那么变量是不能像函数一样被调用的-=-=-=如果你问IE为什么不智能一点,是函数就调用,是变量就取值那是因为还可以把函数本身赋值给变量这样a=c那么执行a()就等于执行c()