举个例子来讲: 比如说: var num = 100; var fn = function(){ console.log("这里是函数"); } js的预解析会事先将js代码提到当前作用域顶端,遇到关键字var和function时,提前解析到内存中。 此时因为还未声明,所以此时: num的值为undefined; fn()的值应为undefined();因为这里的函数fn会被解析为undefined,所以会报错误。