JS预解析

预解析:在当前作用域下, JS 代码执行之前,浏览器会默认把带有 var 和 function 声明(匿名函数没有function声明,所以不会提升)的变量在内存中进行提前声明或者定义。

代码执行: 从上到下执行JS语句。

预解析会把变量和函数的声明在代码执行之前执行完成。

结果:报错提示 ”fn is not a function" 解释:该段代码执行之前,会做变量声明提升,fn在提升之后的值是undefined;而fn调用是在fn被赋值为函数体之前,此时fn的值是undefined,所以无法正确调用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容