js基础04

for循环补充

遍历对象中的属性名和属性值

obj.key为什么在for in循环里出现undefined的原因
obj.key等于的是obj[“key”],而不是obj[key],在当前key是属性名的索引,是一个变量

var obj={"name":"li","age":12}
for(var key in obj){
console.log(key); //name age
console.log(obj[key]);// li 12
//console.log(obj.key); undefined undefined
}
while

是只要条件成立就执行里面的内容

    // while是只要条件成立就执行里面的内容
    while(num>3){
        num++;
        console.log(num);
    }
do{函数体}while(判断条件)

先执行do里面的语句,再判断while是否成立,成立执行do

    do{
        num++;
        console.log(num);
    }while(num>3)

函数

代表某种功能
函数是一个引用数据类型,在存储的时候,开辟一个堆内存,把函数里面的代码当成字符进行存储(空间地址),然后把地址给函数名

  • 形参:形式上的参数
  • 实参:真实传递的参数
  • 不确定穿的的参数个数:arguments是一个(类数组),有索引,有长度
    • arguments.length真实传递的参数个数
    • arguments[0]具体的某个参数
    • arguments.callee当前函数本身
  • 函数执行的时候会形成一个私有作用域,保护函数变量不被污染,这种机制可以称之为闭包
    • 外面拿不到函数内的参数,如果想传给外面,需要return你想传的值
  • 函数分为实名函数。匿名函数。箭头函数
    function ac(){
        console.log(arguments);
        //arguments是形参集合,当不知道形参个数的时候可以用这个,结果是一个类数组
        //拿到具体的参数arguments[索引]
        //arguments.length可以拿到形参的个数
        //arguments.callee函数本身
    }
    ac(1,2,3,4);
函数的返回值return
    function ad(x,y){
        x+y;
        return 100;
    }
    var res=ad(10,11);      //res是100
    //不写return,res就是undefined
匿名函数
  • 函数表达式
  • 自执行函数
    • 自执行函数的特点是末尾都有(),开头可以为+-~!,也可以用()包起来,效果一样
//  函数表达式
 var a=function(){
     console.log(1);
 } 
 //自执行函数5种
(function(){console.log(1)})();

 +function(){}();
 -function(){}();
 ~function(){}();
 !function(){}();
箭头函数

箭头函数里面没有arguments,写的话会报错,但是有一个替代品…arg是剩余运算符,输出为

 var res=(x,y)=>{
     console.log('箭头函数');
 }
 res();
 var res=x=>{return x+1};
 //如果只有一个形参,()可以省去
 var res=x=>x+1;
 //如果函数体只有一个return,return也可以省去
函数接受参数的方式:
  • arguments
  • 形参
求和
//数字求和
    function cn(){
        var he=0;
        for(var i=0;i<arguments.length;i++){
            // console.log(arguments[i]);
            he+=arguments[i];
        }
        return he;
    }
    // var ad=cn(1,2,3);
    // console.log(ad);
    console.log(cn(1,2,3));
//有效数字的和
    function total(){
        var hh=0;
        for(var i=0;i<arguments.length;i++){
            if(!isNaN(arguments[i])){
                hh+=Number(arguments[i]);
                //加Number()是防止值为字符串
            }
        }
        return hh;
    }
    console.log(total(1,"22px",11,""23));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值