【2021-09-09】JS学习(五)--函数

1.函数的定义

两种方法:function 函数的名称(name age。。。){ return }

函数的结束:以return 或{}结束。

函数的作用:提高复用率,封装(形参,实参,功能的封装)

定义方法

function add(v1,v2){//形参
console.log('add');
    v1 = Number(v1);
    v2 = Number(v2);
var result = v1+v2;//result 是局部变量
return result;
}
console.log(add);
console.log(add());
console.log(add(3,4));
var n1 = 100,n2 = 200;
console.log(add(n1,n2));//实参

验证是否为成年人

function isCheng(age){
   //验证数据合法性
    if(typeof age=='number' && age>0 && age<200){
        if(age>18){
            console.log("是成年人");
        }else{
            console.log("未成年人");
            return;
        }
    }else{
        return;
    }
    //后续业务处理
    console.log("办信用卡");
}
isCheng('abc');
isCheng(300);
isCheng(20);
isCheng(10);
    var print = function(){
        console.log('打印');
        return;//多次return不会报错,但停止 只在第一次就结束。
    }
    print();

2.函数的使用

//第一种
function test1(){
    console.log('test1');
}
function test1(){
    console.log('第二次test1');
}
test1();//js执行了第二个值。。。
//等价于。。。var a=10  var a=20 console.log(a);===20
​
//第二种
var test2=function(){console.log('1111');};
var test2=function(){console.log('2222');};
test2();
//结论一:所有的变量可以重复使用 ,重复定义
//结论二:变量可以提升
​
console.log(age);//undefined;
var age =20;
console.log(age);//20
//函数变量名的提升
console.log(print);//{function: print}
print();
console.log(foo);//undefined
//foo(); error!
function print(){
    console.log('print');
}
var foo = function(){console.log('foo');}
​
console.log(say);
say();
function 

3.函数的调用(实参)

---------函数声明好之后并不会直接允许,需要进行调用才能运行。

调用方法:

  • 函数名(实参列表);

  • 函数名 .call(执行环境对象,实参列表);

  • 函数名 .apply(执行环境对象,实参列表数组);


4.函数的属性

只有在函数内部才能访问的属性。

arguments : 是类数组对象,包含着传入函数中参数。

arguments对象还有一个callee的属性,用来指向拥有这个arguments对象的函数。

this: 指向的是函数赖以执行的环境对象。

//js很少用函数的重载(相同的函数名称,不同的返回值类型,不同的参数个数,不同的参数类型)
function add(){
    //验证数据是number
    //累加
    var sum = 0;
    for(var key in arguments){
        var value = argument[key];
        if(typeof value=='number'){
            sum = sum + value;
        }
    }
    return sum;
}//0  600   6

5.函数表达式

  1. 在o文件内的全局范围内被调用

  2. 在对象内,对象成员

    var p1 = {
        name:'zs',
        //sayName:sayName
        sayName
    }
    p1.sayName();//zs
    var p2 = {
        
    } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值