function fn(形参){ } fn(实参)
var fn = function(形参){ } fn(实参)
声明式函数可以在声明之前和之后调用
函数表达是只能在声明之后调用
函数的调用方式:
+ 函数名+括号 fn()
+ 通过事件调用函数
function haha(){ alert('大家好,我是通过事件调用的函数'); }
+ 自调用 括号加匿名函数形式
(function(){ console.log(666); })();
function fn(形参1,形参2){ 形参1 = 形参1||默认值 形参2 = 形参2||默认值 函数体 } fn()
1、封装 封装代码,使代码更加简洁 2、即时 想什么时候使用就什么时候使用 3、复用 可以多次使用
不需要任何操作就可以直接使用的东西 是实参的集合 是一个伪数组 有数组的下标和数组的length
console.log(arguments)
把所有的实参全部打印出来
console.log(arguments[i]) // arr[0] arr[1] arr[2]…
for(var i = 0 ; i < arguments.length ; i++)
arguments对象:
+ 是function给咱们提供的,主要是保存了形参的内容
+ 当形参过多的时候,直接使用arguments对象
+ arguments.callee() 用于替代函数名称的
+ arguments.length表示的是实参的个数
+ arguments.callee.length表示的是形参的个数
判断实参个数和形参个数是否相等 function fn(a, b, c){ console.log(arguments.length == arguments.callee.length); } fn(1, 2, 3);
return
return
返回值就是 undefined
return
但是后面没有东西 返回值也是 undefined
return
return
后面的东西就是函数的返回值return
后面的代码不再执行window.onload = function(){ // 当页面资源加载完毕以后浏览器调用 }
浏览器在执行代码之前会把所有代码通读解释一遍 但是这个过程你看不到
会把所有 var
声明的 和 声明式函数 提前 同名是函数优先
var
声明的变量放到前面去不会赋值 声明式函数放到前面 会有值是一个函数的地址
/* 预解析 var num */ console.log(num) // undefined var num = 10 console.log(num) // 10
var a = b = c = 10; /* 拆分: var a = 10; b = 10; c = 10; */