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

  

  

  

 

原文地址:https://www.cnblogs.com/yangxue72/p/7805119.html