暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JavaScript基础04_函数

敲代码的人 2019-06-29
127

函数

函数:把一坨重复的代码封装,在需要的时候直接调用即可

函数的作用:代码的重用

  <script type="text/javascript">
//函数的声明,语法
// function 函数名(){
// // 函数体
// }

//函数的调用
// 函数名();
// 函数体只有在调用的时候才会执行,调用需要()进行调用。
// 可以调用多次(重复使用)
    
function say(){
console.log("hello huge ");
}
</script>


函数参数:

在函数定义的时候,函数名字后面的小括号里的变量就是参数(写了几个就有几个参数)

在函数调用的时候给变量赋值,这是传值


 形参:函数在定义的时候小括号里的变量叫形参

实参:函数在调用的时候小括号里传入的值叫实参,实参可以是变量也可以是值

  <script type="text/javascript">
//声明函数
function getSum(x, y){//两个形参
console.log(x+y);
}


//调用
//1和2就是实参这里是值
getSum(1,2);//3


var num1= parseInt(prompt("输入第一个数字"));
var num2=parseInt(prompt("输入第二个数字"));
//这里num1和num2也是实参,但是是变量
getSum(num1 + num2);
     
     //注:形参和实参的个数可以不一样
</script>

函数的返回值

如果一个函数中有return ,那么这个函数就有返回值

如果一个函数中没有return,那么这个函数就没有返回值

  <script type="text/javascript">
//声明有返回值的函数
function getSum(x,y){
return x+y;
}


var res = getSum(1,2);
console.log(res);//3
//注意
// 如果接收一个没有返回值的函数,是undefined
function getSum2(x,y){
x+y;
}


var res2 = getSum2(1,3);
console.log(res2);//undefined

    //注:函数遇到return就结束这个函数,所以在一个函数体
    //的return后面写代码是没有任何意义的,不会执行        
</script>

arguments的使用

avaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此及可以进行遍历

  <script type="text/javascript">
//计算n个数字的和,但是不确定n的个数
//定义函数
function getSum(){
//使用arguments对象可以获取传入的每个参数的值
var sum = 0;
console.log(arguments.length);
for(var i= 0;i < arguments.length;i++){
sum += arguments[i];
}
return sum;
}
//函数体中有输出伪数组的长度 ====== 4
console.log(getSum(10,20,30,40));//100
</script>


函数的其他定义方式讨论

命名函数:函数如果有名字,就是命名函数

匿名函数:函数如果没有名字,就是匿名函数

  <script type="text/javascript">
//把一个函数给一个变量,此时形成了函数表达式
//var 变量=匿名函数;
//这里 function(){};就是匿名函数
//这种形式就相当于个变脸赋值
var f1 = function(){
console.log("lang li hu ge ");
};//此处需要;切记
//因为你给一个变量赋值的时候后面是需要分号的

//调用
f1();


//之前是函数的声明
//他自己有名字
function f2(){
console.log(" lang li huge ");
}
</script>

区别

  <script type="text/javascript">
//声明的式函数创建
//遇到重名,后面覆盖前面
function f1(){
console.log("huge 1");
}
f1();//huge 2
function f1(){
console.log("huge 2");
}
f1();//huge 2


//函数表达式
//相当于给变量重新赋值
var f2 = function(){
console.log("huge 1");
};
f2();//huge 1
var f2 = function(){
console.log("huge 2");
};
f2();//huge 2 给变量重新赋值(可以这样理解)
</script>

匿名函数

没有名字的

  <script type="text/javascript">
//匿名函数不能通过直接调用来执行,
//因此可以通过匿名函数的自调用的方式来执行
//一次性的
(function(){console.log("langlihuge");
})();
</script

函数也是一种数据类型

函数作为参数

函数做为返回值

  <script type="text/javascript">
//定义一个函数
function f1(){}
//获取类型
console.log(typeof f1);//function


//函数可以作为参数使用,如果一个函数作为参数,
//那么我们说这个参数(函数)可以叫回调函数
//只要是看到一个函数作为参数使用了,那就是回调函数
function say(fn){//一个形参
console.log("langli");
fn();//当作函数的调用
}


function say2(){
console.log("huge");
}


say(say2);//say2作为实参传入
//输出结果
//langli
//huge

//作为返回值
function huge(){
console.log("lnagli");
return function(){
console.log("huge");
};//直接返回一个函数
}


huge()();//huge()调用函数得到一个函数,再()调用
//输出结果
//langli
//huge
</script>


由于本人时间原因,可能会出现停更

结束语


文章转载自敲代码的人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论