函数表达式和函数声明
知识点1、函数在声明之前,会把声明的函数提到前面去。但是函数表达式并不会提到前面。 var a = 100,var a会提到前面,a = 100并没有执行 相当于 var a = undefined写在前面了。同理于函数。
分析这里出现的结果原因:第2行,声明var a 会被提前,但是 a = 100,表达式并不会被提前,所以是undefined。
知识点2、函数里面也是一样提前。 只不过一个是全局,一个是函数上下文。
第4、5行,函数声明也是会先提前的。所以可以执行fn("zhangsan ")。看函数内部,声明age会提前,所以第七行也可以正常执行。
知识点3、arguments 和this在执行之前就会确定值。
知识点4、每个script内部的变量提前,函数声明都会提前。函数内部也会提前。
网友评论