作用域闭包、变量预解释和this关键字专题之二:理解什么是JS作用域、闭包和基本的JS作用域面试题

下面的题是从文思海辉面试题里改造而来。是珠峰培训2014年第一期正式课第一天内容。视频也是课堂现场录的,没有经过处理和剪辑

视频地址:http://www.zhufengpeixun.com/kecheng/detail_477778


题目如下:

var i=9;
function fo(){
	var i=0;
	return function(n){
		//return n+i++;//原题是这样的。n和i先相加,然后i再累加
		//return n+++i;//扩展一下思咱:如果改造成这样的代码会是什么答案。(n先和i相加,然后n自己再累加)
		return n+(++i);//这样呢?(i先累加,然后n和i再相加)
		//首先要明确这个i是那儿定义的,当这个方法运行的时候。
	}
};

var f=fo();

var a = f(15); alert(a)//value:___________
var b = fo()(15); //value:__________________
var c = fo()(20); //value:__________________
var d = f(20);alert(d); //value:_______________