目录
一、函数基础
1、arguments对象伪数组
arguments.length 获取的是函数在调用的时候传入了几个参数\
使用arguments对象可以获取传入的每个参数的值
2、函数的其他定义方式
(1)命名函数 function a()
(2)匿名函数 function () 匿名函数不能直接调用
(3)函数表达式 :把一个函数给一个变量
var f2 = function (){
函数体
};
可直接调用:f2();
ps:匿名函数自调用:不会冲突、安全
(function(){
函数体;
})();
3、函数也是一种数据类型
typeof f1——>function类型的
函数可作为参数使用,该参数(函数)叫回调函数
4、函数也可作为返回值使用
function f1(){
return function(){ //返回了一个函数
函数体;
}
}
var ff=f1(); //ff接收了f1的返回值,为一个函数代码,ff就为一个函数了
二、作用域
全局变量:用var声明的变量为全局变量,可以在页面的任何位置使用,if和for内声明的变量也是全局变量(除了函数内的变量)
局部变量:在函数内部声明的变量为局部变量,外面不能使用
全局作用域:全部变量的使用范围
局部作用域:局部变量的使用范围
块级作用域:一对大括号内的变量只在大括号内使用(js里没有块级作用域)
扩展:隐式全局变量:没有用var声明(可被删除:delete 变量)
三、预解析:提前解析代码
把代码的声明提前了,包括变量、函数,提前到所在作用域的最上面(变量在最上面)