函数
1. 定义
- 普通函数
 
function fun (arg1, arg2, arg3...) {
    statements
}
fun();  // 调用
- 函数表达式
 
var fun = function (arg1, arg2, arg3....) {
    statements;
}
fun();  // 调用
- Function关键字
 
var fun = new Function('arg1', 'arg2', 'statements');
fun();  // 调用
- 箭头函数(ES6)
 
var fun = (arg1, arg2, arg3) => {
    statements;
}
fun();  // 调用
2. 函数特性
- 
模拟函数重载
function doAdd () { if (arguments.length === 1) { alert(arguments[0] + 10); } else if (arguments.length === 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); doAdd(10, 20); - 
值永远与对应命名参数的值保持同步
function doAdd (num1, num2) { arguments[1] = 10; alert(arguments[0] + num2); } 1. 此处修改了arguments[1]的值,那么num2的值也被修改为10 2. 但是arguments[1]和num2也是两块相同的内存空间(相互独立,值会同步) 3. 但是如果传递了一个值,arguments[1]就没有作用了 
未完待续(this关键字改变,闭包)。。。