<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">

/**
*
* js函数
*
* java:
* public [static] return_type method_name([params]){
* return "";
* }
*
* JS:
* function function_name([params]){
* return undefined; 默认返回该值
* }
*
* 在js中 声明方法 需要用function关键字标识
* 方法的默认返回值是 undefined
*
* 如果要返回数据 则需显示指定return
*
* 在js中 函数没有重载的概念
*
* 如果在一个对象中出现多个同名的函数的时候 它的生效的函数是 最后解析的那一个函数
*
* 参数的匹配方式
* 首先 参入的参数会和形式参数进行匹配
* 第一种 个数相同的情况 形参和实参就会一一匹配
* 第二种 形参个数大于实参个数的时候 多余的形参的默认值是undefined
* 第三种 形参个数小于实参个数 多余的实参会被丢弃掉
*
* 不管形参的情况 所有传入的参数都会被封装到arguments对象中 他有点像可变参数
*
* 以函数式声明的函数一定要给定函数名
*
*
* 在js 函数就是对象
*
*
*
*/
function test(){

}
/* function add(n1,n2){
return n1+n2;
}*/
/*function add(n1){
console.log(arguments);
return n1+100;
}*/
var n1 = add(200);


var n2 = add(200,200);
var n3 = add(200,200,100);
var n4 = add(200,200,200,500);
console.log(n1);
console.log(n2);
console.log(n3);
console.log(n4);
/**
* 采用该种方式声明的方法 可以在任何地方调用
* @returns {*}
*/
function add(){
var args = arguments;
if(args.length===1){
return args[0]+101;
}else if(args.length === 2){
return args[0]*args[1];
}else{
return "还没有被实现";
}
}
</script>
</head>
<body>

</body>
</html>