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

浙公网安备 33010602011771号