day06——函数01

119 阅读3分钟

一、定义一个函数的方式(三种)

function命令法

1.语法格式

function 函数名(参数1,参数2,…..){函数体}

2.语法说明:
1)function是定义函数的关键字
2)函数名是标识符,需要遵守标识符命名的规范
3)声明函数的时候,写的参数为形参,可以有多个,也可以没有
4)函数体就是写这个函数要实现的功能代码

//定义一个正向三角
    function fun1(a){
        for(var i = 0;i < a;i++){
            for(var j = 0;j > i;j++){
                document.write('*');
            }
            document.write('<br>')
        }
    }
    fun1(10);
//定义一个反向三角
    function fun1(a){
        for(var i = 0;i < a;i++){
            for(var j = 0;j > i-a;j++){
                document.write('*');
            }
            document.write('<br>')
        }
    }
    fun1(10);

function表达式法

1.语法格式:

Var 变量名 = function(参数1,参数2,…..){函数体}

2.语法说明
1)函数表达式是将一个函数数据类型的值赋值给左边的一个变量
2)函数表达式法一般不写函数名,称为匿名函数,即使给函数起名字,也不能通过名字调用该函数
3)函数表达式法最后写一个分号

使用构造函数

1.语法格式:

Var 变量名 = new Function("参数1","参数2",…..,"函数体");
Var 变量名 = Function("参数1","参数2",…..,"函数体")

2.语法说明;
1)构造函数是JS高级部分学的,后面再去体会构造函数, Function()就是一个构造函数
2)参数都是字符串类型的,而且最后一个参数是函数体,也得是字符串
3)这种方式创建函数麻烦,不直观。

二、 函数的声明提升

1.函数也有声明提升,类似于变量的声明提升;
2.浏览器在解析我们的代码时,会将函数声明提升到代码的最前面
3.function命令法的声明提升:

fun1();
function fun1(){
console.log('哈哈');
}
等价于
function fun1(){
console.log('哈哈');
}
fun1();

函数的重复声明

1.类似于变量,函数也可以重复声明,可以声明两个名字一样的函数,后面的生效

形参

1.形参:就是指在函数声明时写的参数
2.形参其实就是一个变量,只不过没有写var关键字
3.函数声明的时候,根据实际情况判断是否写形参,以及写多少个,多个参数之间用逗号隔开
4.函数有形参,在调用该函数的时候就需要传递相应个数的参数

实参

1.实参:就是调用函数时实际传入的参数
2.一般,形参有多少个,实参就有多少个,一一对应
3.实参的值赋值给形参

arguments对象

1.arguments是参数的意思
2.arguments对象只能用在函数的声明中,可以用来获取所有的实参
3.获取实参的方法 arguments[0]、arguments[1]
4.对象有属性和方法 5.arguments.length属性表示获取到的实参

//石头剪刀布游戏

//     var comCount = 0;
//     var userCount = 0;
// while(comCount < 3 && userCount < 3){
//     var computer = ~~(Math.random()*((2-0+1)+0));
//     var user = Number(prompt("请输入数字0-2"));
//     if(user == 0){
//         if(computer == 1){
//             userCount++
//         }else if(computer == 2){
//             comCount++
//         }
//     }else if(user == 1){
//         if(computer == 0){
//             comCount++
//         }else if(computer == 2){
//             userCount++
//         }
//     }else if(user == 2){
//         if(computer == 0){
//             userCount++
//         }else if(computer == 1){
//             comCount++
//         }
//     }
//     }
//     if(comCount == 3){
//         document.write("电脑胜利")
//     }else{
//         document.write("用户胜利")
//     }

//定义一个函数,求圆的面积

 // function test(r){
//     // console.log(`3.14*${r**2}`)
//     console.log(3.14*r**2)
// }
// test(6)

//求两个数的和

 function sum(a,b){
     console.log('a+b')
 }
 sum(5,7)

//函数判断一个年份是否是闰年

// var test1 = function (year){
//     if(year % 4 == 0 && year % 100 != 0){
//         console.log(year+"是闰年")
//     }else{
//         console.log(year+"是平年")
//     }
// }
// test1(2000)
// test1(2001)

//函数判断1990-2000年份哪年是否是闰年

// var test1 = function (year) {
//     for (var year = 1990; year <= 2000; i++) {
//         if (year % 4 == 0 && year % 100 != 0) {
//             console.log(year + "是闰年")
//         } else {
//             console.log(year + "是平年")
//         }
//     }
// }

//计算任意数的累加和

// var sum = 0;
// var test1 = function(num){
//     for(var i = 1;i<=num;i++){
//         sum+=i;
//     }
//     console.log(num+'的累加和是'+sum)
// }
// test1(6)

//计算1-100之间的偶数和及偶数个数

// var sum=0;
// var count=0;
// var test1 = function(){
//     for(var i = 0;i<101;i++){
//         if(i%2==0){
//             sum+=i;
//             count++;
//         }   
//     }
//     console.log('100以内的偶数和是'+sum+"偶数个数是"+count)
// }
// test1()

//计算任意值的绝对值

// var test1 = function(num){
//     if(num>=0){
//         console.log(`${num}`);
//     }else{
//         console.log(`${-num}`);
//     }
// }
// test1(5)
// test1(-5)

//判断任意数是否存在小数部分

var test1 = function(num){
if(~~num == num){
    console.log('没有小数部分')
}else{
    console.log('有小数部分')
}
}
test1(6.0)

//比较三个数之间的最大值

// var test1 =function(num1,num2,num3){
// var a = num1 > num2 ?num1 > num3 ? num1 :num3 :num2 > num3 ? num2 :num3
// console.log('最大的数是'+a)
// }
// test1(5,7,96)