函数的声明
利用关键字自定义函数
function 方法名(){
//方法体
}
1.声明函数的关键字全部小写
2.函数是做某件事,函数名一般是动词
3.函数不调用自己不执行
函数表达式(匿名函数)
var fun = function(parms){
//主体
}
fun();//调用
fun是变量名,不是函数名
将函数存在变量中
箭头函数
let get = (params) => {
}
函数的调用
函数名();
案例 利用函数计算1-100直接按的累加和
function getSum(){
var sum = 0;
for(var i = 1;i<=100;i++){
sum+=i;
}
console.log(sum);
}
getSum();//函数的调用
函数的参数
function 函数名(形参1,形参2){
}
函数名(实参1,实参2);
案例 求两个数的和
function getSum(num1,num2){
console.log(num1+num2);
}
getSum(5,6);
案例 如果实参的个数超过形参,则按照形参的个数进行
function getSum(num1,num2){
console.log(num1+num2);
}
getSum(5,6,3);//就相当于 getSum(5,6)
如果实参个数小于形参个数,多的形参为undefined,结果为Nan
函数返回值 return
1.给函数调用者返回return后面的结果
2.如果函数没有返回值,则返回undefined
function getSum(num1,num2){
return num1+num2
}
案例1 求最大值
function getMax(num1,num2){
if(num1>num2){
return num1;
}else{
return num2;
}
}
console.log(getMax(3,4));;
案例2 求数组最大值
function getArrayMax(arr) {
var max = arr[0];
for (var i = 1; i <= arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
var arr = [2, 3, 4, 56, 6, 4]
console.log(getArrayMax(arr));
arguaments 的使用
当不确定有多少参数传递的时候,可以用arguaments来获取,arguaments是函数内置的对象。获取传递的参数
是伪数组,按照索引的方式存储。可以按照数组的方式遍历
function f01(){
console.log(arguments);//获取传递过来的所有实参
}
f01(1,2,3);
function f01(){
console.log(arguments);//获取传递过来的所有实参
for(var i =0;i<arguments.length;i++){
console.log(arguments[i]);//遍历实参
}
}
f01(1,2,3);
函数声明的方式
案例:利用函数求任意个数的最大值
function getMax() {
var max = arguments[0];
for (var i = 1; i <= arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i]
}
}
return max;
}
var max = getMax(2, 3, 4, 653, 3, 6, 76, 3, 6, 3)
console.log(max);
案例:反转数组
function reverse(params) {
var arr = [];
for (var i = 0; i < params.length; i++) {
arr[arr.length] = params[params.length - i-1];
}
return arr;
}
var arr = [1,2,3,4,5,6];
var arr= reverse(arr);
console.log(arr);
案例:冒泡排序
function sort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp;
temp = arr[j]
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
var arr1 = sort([2, 3, 4, 653, 3, 6, 76, 3, 6, 3]);
console.log(arr1);
案例 判断是否闰年
function isRunYear(year) {
var flag = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return !flag;
} else {
return flag;
}
}
var flag = isRunYear(2023);
console.log(flag);
案例 根据用户输入的年份,输出当前年份2月份的天数
//如果是闰年 2月份是29天,如果是平年,2月份则是28天
function backDay() {
var year= prompt('请输入年份');
var runDay = 29;
var pingDay =28;
var flag = isRunYear(year);//调用上面的方法判断是闰年还是平年
if(flag){
return alert('2月份是:'+runDay+'天')
}
return alert('2月份是:'+pingDay+'天')
}
backDay();