函数传参初级知识

什么是函数传参?

例子

<script>
function fn1(a){ //相当于var a =100;
alert(a)
}
fn1(100); //调用,弹出100;
</script>

答:往函数里面传递参数

多个参数 fn1(100,'px')用逗号隔开,里面function fn1(a,b)加一个b来接受'px'
例子

<script>
function fn1(a,b){
alert(a+b)
}
fn1(100,"px"); //弹出100px
</script>

参数的=JS的数据类型:
数字;
字符串;
布尔;
未定义;
函数;
对象;

例子

字符串

<script>
function fn2(a){
alert(a.charAt(2)); //charAt找到字符串下标[2]的值
}
fn2("测试数据"); //弹出数
fn2("testdata"); //弹出S
</script>

函数

<script>
function fn3(fn){ //fn同下面的fn()
fn()
}
fn3(function(){alert(1)}); //弹出1
</script>

函数2

<script>
function fn3(fn){
fn(100)
}
fn3(function(a){alert(a)}); //弹出100
</script>

函数3

<script>
function fn4(){
alert(4);
}

function fn3(fn){
fn()
}
fn3(fn4); //和匿名函数相比,有名函数当参数不要带() 弹出4
</script>

对象

<script>
function fn5(w,d){
w.onload=function(){
d.body.innerHTML=123;
}
}
fn5(window,document); //<body>标签里面输出123
</script>


基本形式:传什么接收什么,一一对应的关系,传多少个都没关系,该怎么用就怎么用!


实际应用————

不同类型参数传入

<script>
function fn6(a){ //1.从下面函数传入的东西看,有不同的类型
if(typeof a==='number' && a===a){ //typeof 取类型 a===a目的是去掉number类型中的NaN (NaN!=NaN)===严格等于,两边值相同但数据类型不同时不会转变类型比较返回为false ==等于,会自动转化,返回值true
alert(a+20); //120
}else if(typeof a==="string"){
alert(a.charAt(1)); //典
}else if(typeof a==="function"){
a(); //1
}
}
fn6(100);
fn6("字典");
fn6(function(){alert(1);})
</script>

posted @ 2015-09-27 11:10  无名氏G  阅读(208)  评论(0编辑  收藏  举报