zoukankan      html  css  js  c++  java
  • 学习 JavaScript (六)核心概念:函数

    基本知识

    函数对于我们来说,不算陌生的东西。中学就已经有了函数的概念,比如:

    y = f(x)
    

    输入一个数 x,能够得到与之对应的一个数 y。也就是说,f(x) 的有一个返回值,这是函数在数学上的定义。但是在 JavaSciprt 中,我们把函数看成是发生器,在内部可以进行一系列运算,可以有返回值,也可以没有返回值。

    函数是用关键字 function 来声明,后面跟一组参数以及函数体,基本的语法如下所示:

    function 函数名字 (参数 1,参数 2,参数 3){
        函数体
    }
    

    如果一个函数有返回值,我们可以看到关键字 return 。在 return 后面发生的一切都没有用了,执行完 return 函数立即退出。一个返回 Hello World 的示例:

    function sayHello(arg1, arg2){
        return arg1 + arg2
        alert("猫咪")
    }
    
    sayHello("Hello", "World"); // 会返回 Hello World ,但是 "猫咪" 不会出现。
    

    不用返回值,函数也可以运行的:

    function sayHello(arg1, arg2){
        alert("我就不返回值")
    }
    
    sayHello("Hello", "World"); // 会弹提示框,而不是参数
    

    函数要么有返回值,要么没有返回值。像 return 后面不跟东西,是不推荐这么干的,这样会导致调试困难。

    关于参数

    参数有很多有趣的地方,JavaScript 在定义函数的时候,标识符可以没有,可以有很多个;在使用函数的时候,传入的参数可以没有,可以有很多个。

    我们应该了解的:

    1. 参数不能命名成 eval 或者 arguments;
    2. 参数在函数内部是以数组的形式存在,我们可以访问 argument 对象得到;
    3. 所有参数都是值,不可能通过引用传递参数;
    4. JavaScript 函数不能像 Java 那样实现重载(两个名字相同的函数却是两个不同的函数),后者会覆盖前者。这是因为参数是一个数组,没有函数签名的说法。可以判断参数的类型或者大小,return 不同的值,实现不完美的重载;
    5. 一般我们称 JavaScript 的参数为形参,是因为参数的名字和传入的值之间不受名称的影响,有的语言在调用函数时,传入的参数名称必须和定义的标识符一致才可以调用。这是因为解析器不会校验参数名,只关心参数的个数和相对位置。

    欢迎大家关注微信公众号:** 可视化技术( visteacher )**

    不仅有前端和可视化,还有算法、源码分析、书籍相送

    个人网站:http://blog.kurryluo.com

    各个分享平台的 KurryLuo 都是在下。

    用心学习,认真生活,努力工作!

  • 相关阅读:
    Go 映射 (map)
    Go 字节 (byte) & 文字符号 (rune)
    Go 数组(array) & 切片(slice)
    Go 字符串 (string)
    Go 变量(var) & 常量(const)
    Go 循环 (for)
    Go 函数
    Go package: strings
    Linux crontab (定时任务)
    Python gc
  • 原文地址:https://www.cnblogs.com/kurryluo/p/9683442.html
Copyright © 2011-2022 走看看