1.递归
先看下面代码
function sumRange(num) {
if (num === 1) return 1;
return num + sumRange(num - 1)
}
sumRange(3) // 6
上面代码执行顺序:
- 函数
sumRange(3)
执行,sumRange(3)
压栈,遇到return
关键字,但这里还马上不能出栈,因为调用了sumRange(num - 1)
即sumRange(2)
- 所以,
sumRange(2)
压栈,以此类推,sumRange(1)
压栈, - 最后,
sumRange(1)
出栈返回 1,sumRange(2)
出栈,返回 2,sumRange(3)
出栈 - 所以
3 + 2 + 1
结果为 6
2.浅拷贝
//浅拷贝
var a = [1,2,3,4]
var b = a;
console.log(b,a);//[1,2,3,4],[1,2,3,4]
3.深拷贝
var a = [1,2,3,4];
var c = a;
var b=[];
console.log(c)
for(var i=0;i<c.length;i++){
b[i]=c[i];
}
a[0] = 0;
console.log("a-----"+a+"-----"+"b-----"+b);