函数和变量的提升问题
问:该代码的输出结果为什么?
本代码主要考察了js中里面的函数提升和变量提升的问题.
变量的提升:当使用var 时,如var num=10;会将var num提升到最前面;然后再在代码里面按正常顺序赋值(num = 10;).
函数的提升,本代码使用的是函数声明的方式对函数进行定义,函数声明和var 都会被提升到最开始的地方,函数声明在提升时是所有的东西都被提升到父级函数开始处.
本代码中,var num 首先被提升,然后function fun( ){statement}整体被提升,num= 10 排到其后面,因此先执行fun内部的代码,fun( )函数内部,var num 被提升,然后console .log(num)在打印台输出num,num 未赋值,输出值为undefined.