1.定义
函数声明:
命名函数表达式:忽略名字,等号右边的也就相当于是匿名函数4
匿名函数表达式———函数表达式
2.参数
函数里面写参数,相当于在里面var a和var b
实参列表
实参列表出生时有几个就是几个,让b等于2也不会往里加了,只当变量使,不对应形参不映射,如果让a=2会让a变为2
3.函数的结束条件和返回值
1.结束 return才会终止,如果我们自己没写,程序内部隐式地加上return
2.return 终止函数加返回变量
形参长度
函数的局部变量
函数里面可以访问外面的变量,外面的不能访问里面的
<html>
<head>
<title>js的函数学习</title>
<meta charset="UTF-8"/>
<!--js的函数学习一
作用:功能代码的封装,减少代码的冗余
1:函数的声明
方式一:function 函数名(形参名1,形参名2.。。){执行体}
方式二:var 函数名=new Function("形参1","形参2"...,"函数执行体");
方式三:var 变量名=function(形参名1,形参名2...{函数执行体})
注意:此声明表明再js中函数是作为对象存在的
2:函数的参数
js中的函数再调用时,形参可以不赋值,不会报错
js中的函数再调用时,形参赋值可以不全部赋值,不会报错,但是实参会以此赋值
3:函数的返回值
在js中如果函数有返回值则直接返回,没有返回值默认返回underfined
注意:js的代码声明区域和执行区域是一起的,都是在js代码的代码域中
4:函数的执行符
在js中,函数的执行符是(),没有小括号则函数名其实就是一个变量,加上小括号函数会被执行
5:函数作为实参传递,在js中函数是可以作为实参传递的
-->
<script type="text/javascript">
//方式一
function test1(a1,a2)
{
alert("hi");
}
//test1(1,2);
//方式二
var test2=new Function("a1","a2","alert('函数声明2')");
//test2(1,2);
//方式三:
var test3=function(a1,a2)
{alert("我是函数声明3");}
//test3(1,2);
//函数的参数学习
function testParam(a1,a2)
{
alert(a1);
alert("函数的形参学习");
}
//testParam();
//函数的返回值
var testReturn=function()
{
alert("函数的返回值学习");
return "js";
}
//alert(testReturn());
//函数执行符
var test4=function(){
alert("hi hi");
return "js";
}
//alert(test4);
// alert(test4());
//函数作为实参进行传递
function testobj(a){
alert(a());
}
var testParam=function()
{
alert("我是函数参数");
}
testobj(testParan());
//开发中经常用的传递方式
</script>
</head>
<body>
</body>
</html>
如何打印出形参
<script>
function sum(a,b){
var c=a+b;
document.write(c);
for(var i=0;i<arguments.length;i++){
console.log(arguments[i]);
}
}
sum(1,2,3,4)
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!--
函数 function test(){}
函数表达式 var test=function abc(){}
-->
<script type="text/javascript">
//命名函数表达式
var test=function abc(){
document.write('a');
}// function abc(){document.write('a');}这样写的话这一块为表达式了,abc相当于匿名
//所以可以写成这样
//匿名函数表达式----函数表达式
var demo=function(){
document.write("b");
}
//形式参数
function sum(a,b){
//var c=a+b;
document.write(a+b+"<br/>");
}//var a,var b;
//实际参数---实参列表数组arguments
sum(1,2);//a=1,b=2
sum(2,3);
function add(a,b,c){
console.log(arguments);//打印在控制台上
console.log(arguments.length);
if(add.length>arguments.length){
console.log("形参多了");
}
else if(add.length<arguments.length){
console.log("实参多了");
}
else{
console.log("相等");
}
}
//实际参数--实参
add(11,undefined,"abc",4);
function re(a,b){
console.log('a');
return ;//终止函数 不会再打印b了
console.log('b');
}
re(1,2);
function rec(){
return 123;//既是返回值也是终止函数
}
var num=rec();//123
function myNumber(target){
}
</script>
</head>
<body>
</body>
</html>