JavaScript 函数的初识

🌙
手机阅读
本文目录结构

函数的意义:高内聚,低耦合,复用与多态

可以通过函数封装任意多条语句,而且可以在任何地方,任何时候进行调用,使用非常灵活;

// 基本的语法
function functionName(argument1,argument2){
    /*一堆的代码*/
}
//下面是函数的一个实例,
function diff(a,b){
    console.log(a-b);
}
diff(10,5);//输出5
diff(20,2);//输出18

函数可以通过它的函数名来调用,后面加(),就可以执行了

上面的diff分别输出的是5和18;a和b是函数的两个参数,最终的结果是打印在控制台的;

return

函数还有一个属性,就是可以 return;

知识点1:函数的返回值只能通过return来返回,除了return以外,没有任何声明可以表示返回值

ECMA中函数在定义的时候,不要求函数是否返回一个值,但是每个函数都有return的权利;

任何函数在任何时候都可以通过return语句返回的值来实现把值返回给外部变量(return的位置是任意的);

function diff(a,b){
    return a-b;
}
var diffNumber=diff(10,5);
console.log(diffNumber);
//diffNumber用来接收函数的返回值,如果return了一个值,但是外部没有变量去接收它,就失去了return的意义了;

知识点2:return的特性:无论return在哪里,只要有执行了return同一条的代码后,函数立即停止,并且立即退出,因此位于return语句之后的任何代码都永远不会执行;

function diff(a,b){
    return a-b;
    console.log("测试的代码");//这条语句,永远不会执行;
}
var diffNumber=diff(10,5);
console.log(diffNumber);

知识点3:一个函数可以多条return;

写一个函数,计算两个数之间的相差多少;

function diff(a,b){
    if(a>b){
        return a-b;
    }else{
        return b-a;
    }
}
var diffNumber1=diff(10,5);
var diffNumber2=diff(5,10);
console.log(diffNumber1);//5
console.log(diffNumber2);//5

这个函数diff用来计算两个数之间才差值;如果a比b小,则用b-a;否则a-b;函数中用if分为两个分支,分别具有自己的return语句来执行正确的计算逻辑;

知识点4:return语句可以不带任何返回值,这种情况下,函数返回值是undefined;这种写法,一般用在需要提前停止函数又不需要返回值的情况;

function testReturn (arg){
    console.log("arg的值是:"+arg);
    //如果传的值是空字符串,参数不对, 没必要处理了,直接return停止函数了,可以优化性能;;
    if(arg===""){return}
    console.log("一些处理参数的代码")
}
testReturn("");

return的总结

  • 1、任何一个函数都有return关键字,用来导出函数内部的值;(闭包的思路);
  • 2、return是非必须的,可以写也可以不写;如果不写,或者return后面没有值,函数的返回结果都是undefined;
  • 3、无论return写在哪里,只要函数执行到了return这条代码了,执行完以后,立即停止执行并且跳出函数;会导致return下面的代码将不会执行;
  • 4、推荐的做法是要么让函数始终都返回一个值,要么永远不要返回值,;否则函数有时候有返回值,有时候没有返回值,调试起来不方便;

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了