函数就是封装了一段可以被重复执行的代码块
目的:让大量代码重复使用
优点:一次封装,多次使用
一.函数的声名
<script type="text/javascript">
// 1.利用函数的关键字自定义函数
function fn (){
}
fn();
//2.函数表达式
//var 变量名 = function(){}
var fun = function(aru){
console.log('我是好人');
console.log(aru);
}
fun('12')
</script>
1.fun是变量名,不是函数名
2.函数表达式可以传递参数
3.函数表达式声名方式跟声明变量差不多,声明变量里面存的是值,而函数表达式里面存的是函数
二.函数的调用
函数可以通过其函数名加上括号中的参数进行调用
如果有多个参数,则参数之间要用逗号隔开
<script type="text/javascript">
function sayhi() {
console.log('hi')
}
//1.function 是声明函数的关键字,小写
//2.函数是做某件事情,函数名一般是动词 sayhi
//3.函数不调用自己不执行
sayhi(); //2.调用函数
//案例 求1-100的累加和;
function getsum() {
var sum = 0
for (var i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum)
}
getsum(); //2.调用函数
</script>
三.return的使用
1.return 后面的语句不会被执行,具有终止效果
<script type="text/javascript">
function getsum(num1,num2){
return num1 + num2;
console.log('海杰是傻逼');
}
console.log(getsum(5,6)); //11
function getsums(num1,num2){
return num1,num2;
}
console.log(getsums(5,6));
// 3.求任意两个数的加减乘除结果;
function getresult(num1,num2){
return [num1 - num2,num1 + num2, num1 * num2,num1/num2];
}
console.log(getresult(2,5)) //返回的是一个数组
//4.有return就返回return后面的值,没有就返回undefined
</script>
2.return、只能返回一个值,以最后一个为准
<script type="text/javascript">
function getsums(num1,num2){
return num1,num2;
}
console.log(getsums(5,6)); //6
</script>
3.求任意两个数的加减乘除结果
<script type="text/javascript">
function getresult(num1,num2){
return [num1 - num2,num1 + num2, num1 * num2,num1/num2];
}
console.log(getresult(2,5)) //返回的是一个数组 [-3, 7, 10, 0.4]
</script>
4.有return就返回return后面的值,没有就返回undefined
四.arguments的定义
arguments展示的是一个伪数组,伪数组具有以下特点:
1.有length值;2.可以被索引;3.不具有pop 和push 方法
<script type="text/javascript">
//arguement 的使用函数独有的内置对象;
function fn(){
console.log(arguments); //里面存储了所有传递过来的实参
console.log(arguments.length);
console.log(arguments[2]);
// 可以按照数组遍历arguments
for(var i = 0; i < arguments.length;i++){
console.log(arguments[i]);
}
}
fn(1,2,3);
fn(1,2,3,4,5,6,8)
// 伪数组 并不是真正意义的数组
//1.具有数组的length属性
//2.按照索引的方式进行储存的
</script>
案例:利用函数求数组元素中的最大值
<script type="text/javascript">
function getmax(){
var max = arguments[0];
for(var i = 1;i < arguments.length;i++){
if(arguments[i] > max){
max = arguments[i]
}
}
return max;
}
console.log(getmax(1,5,27,58,65,45,5)); //65
console.log(getmax(1,5,27,)); //27
console.log(getmax(1,5,27,58,65,98)); //98
console.log(getmax(1,5)); //5
</script>