1、当局部变量和全局变量冲突时,优先使用局部变量
2、函数的作用域链:一级一级向上查找变量
3、递归函数:自己调用自己
案例:
function fun(num){
console.log(num); //3,2,1,0
if(num>0){
fun(num-1);
}
}
fun(3);//3,2,1,0,0,1,2,3
将其展开来看:
function fun3(){
console.log(3);
function fun2(){
console.log(2);
function fun1(){
console.log(1)
function fun0(){
console.log(0)
console.log(0)
}
console.log(1)
}
console.log(2);
}
console.log(3);
}
4、创建数组的两种方式
通过对象原型定义
var obj = new Array();
标准定义
var arr = [ ];
5、闭包函数
在父函数体内部的函数在父函数的作用域之外被调用,则形成内部函数的闭包。(内部函数就叫闭包)
闭包函数若使用了全局变量,则改变量不会被释放,会一直占内存,可能会导致内存的泄露。
案例:
function outSide(){
var num = 100;
//局部变量赋值为函数
var inSide = function(){
console.log(num);
num++;
}
// 采用return返回值返回
return inSide;
}
res();//调用