zoukankan      html  css  js  c++  java
  • JS函数

    1.return返回值

    数字、字符串、布尔、函数、对象(元素、数组、json、null)、未定义

    (1)函数名称加括号就等于return后面的值

    (2)所有函数默认返回值:未定义

    (3)return后面任何代码都不执行了

    //fn1(); =>100
    alert(fn1()); //100
    alert(typeof fn1());//number
    function fn1(){
        return 100;
    }
    
    //fn2=function(){alert(1);},所以它不会执行函数
    alert(fn2()); //function(){alert(1);}
    fn2()(10);//10
    function fn2(){
      return function(a){
        alert(a);
      }
    }
    
    
    fn3().onload=function(){
      document.body.innerHTML="123";
    }
    function fn3(){
      return window;
    }
    

      

    应用getId函数

    function getId(elem){ 
      return document.getElementById(elem); 
    } 
    //获取id名称为box的元素 
    getId("box");
    

      

    获取元素$()函数

    function $(v){
        if(typeof v ==='function'){
            window.onload=v;
        }else if(typeof v==='string'){
            return document.getELementById(v);
        }else if(typeof v==='object'){
              return v;
        }  
    }
    

      

    小应用

    function fn1(n){
        var arr=[];
        for(var i=1;i<=n;i++){
            arr.push(i);
        }
        return arr;
    }
    alert(fn1(5));  //[1,2,3,4,5]
    alert(fn1(7));  //[1,2,3,4,5,6,7]
    

      

    2.实参arguments  ---实际传递的参数

    fn1(1,2,3);                 //实参---实际传递的参数
    function fn1(a,b,c){   //形参-----形式上,a、b、c这些名代表1、2、3
        //arguments=>[1,2,3]---------实参的集合
      alert(arguments.length)
    }
    
    //当函数的参数无法确定的时候:用arguments
    alert(sum(1,2,3));//6
    alert(sum(1,2,3,4));//10
    function sum(){
      var n=0;
      for(var i=0;i<arguments.length;i++){
        n+=arguments[i];
      }
      return n;
    }
    

      

    实参arguments作用域之间的关系

    var a=1;
    function fn1(a){
        arguments[0]=3;
        alert(a);               //3
        var a=2;
        alert(argument[0]); //2
    }
    fn1(a);
    alert(a);   //1
    

      

      

      

     

  • 相关阅读:
    Linux文件系统之INode
    手写Netty之多路复用Select小案例
    多路复用器Select、Poll、Epoll区别梳理
    NAT模式、路由模式、桥接模式的区别
    Netty编解码器(理论部分)
    Netty之Unpooled_Bytebuf
    为什么 TCP 协议有粘包问题
    IDEA_2019.1版本中Protobuf的使用
    Netty服务端Server代码说明
    Netty之ChannelHandler
  • 原文地址:https://www.cnblogs.com/yangxue72/p/7805119.html
Copyright © 2011-2022 走看看