基本知识

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

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 都是在下。

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

学习 JavaScript (六)核心概念:函数的更多相关文章

  1. 使用Firebug或chrome-devToolBar深入学习javascript语言核心

    使用Firebug和chrome-devToolBar调试页面样式或脚本是前端开发每天必做之事.这个开发神器到底能给我们带来哪些更神奇的帮助呢?这几天看的一些资料中给了我启发,能不通过Firebug和 ...

  2. Elasticsearch学习之基本核心概念

    在Elasticsearch中有许多术语和概念 1. 核心概念 Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包 ...

  3. Docker 学习笔记之 核心概念

    Docker核心概念: Docker Daemon Docker Container Docker Registry Docker Client 通过rest API 和Docker Daemon进程 ...

  4. webpack学习2.3webpack核心概念

    核心概念(四个) Entry(入口) Output(出口) Loaders()来处理其他类型的资源文件 Plugins(插件) 1.入口(Entry) 作用:代码的入口,打包的入口,单个或多个, 示例 ...

  5. javascript——对象的概念——函数 1 (函数对象的属性和方法)

    一.创建函数 函数是一种对象:Function类 是对象,可以通过 Function 实例化一个函数,不过最多的还是利用 function 来创建函数. 方式一:利用 Function类 来实例化函数 ...

  6. javascript——对象的概念——函数 2 (内建函数与类型转换)

    javascript 有许多内建函数,用于各种操作,以下为常用的内建方法. 1.parseInt(object,int):将输入的 int 进制的值 object 转换为 10 进制的数值: obje ...

  7. Oracle学习笔记六 SQL常用函数

    函数的分类 Oracle 提供一系列用于执行特定操作的函数 SQL 函数带有一个或多个参数并返回一个值 以下是SQL函数的分类:

  8. javascript——对象的概念——函数 3 (使用技巧)

    1.回调函数:将函数A传给函数B,由函数B来执行A,则称A为回调函数. 例1: 例2 function addone(a){;}; //定义一个回调函数 function mulitiply(a,b, ...

  9. 学习 JavaScript (四)核心概念:操作符

    JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,前面三个上一篇文章已经讲解完了.后面三个内容超级多,这篇文章主要讲解的是操作符. 操作符 什么叫做操作符? 这是一种 ...

  10. 学习 JavaScript (三)核心概念:语法、变量、数据类型

    JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道 ...

随机推荐

  1. Windows10远程报错:由于CredSSP加密Oracle修正

    Windows10远程桌面连接 报错信息 : 网上找到方法 但是奈何是 "Win10家庭版" 不能使用这个办法,具体操作可以看最后的引用链接 !!!! 策略路径:"计算机 ...

  2. ScalaPB(3): gRPC streaming

    接着上期讨论的gRPC unary服务我们跟着介绍gRPC streaming,包括: Server-Streaming, Client-Streaming及Bidirectional-Streami ...

  3. 利用分支限界法求解单源最短路(Dijkstra)问题

    分支限界法定义:采用Best fist search算法,并使用剪枝函数的算法称为分支界限法. 分支限界法解释:按Best first的原则,有选择的在其child中进行扩展,从而舍弃不含有最优解的分 ...

  4. 第七章之S5PV210移植到Nandflash

    1,之前的操作都是基于SD卡进行运行的,如今在Nandfalsh中运行u-boot.因为s5p_goni.h配置文件没有配置Nand相关文件,所以先配置Nand文件. 在include/configs ...

  5. Spark Streaming入门

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文将帮助您使用基于HBase的Apache Spark Streaming.Spark Streaming是Spark API核心的一个扩 ...

  6. eclipse汉化链接

    百度百科 https://jingyan.baidu.com/article/4b07be3cb1864e48b380f315.html 博客园:http://blog.csdn.net/sunny_ ...

  7. vue-quasar-admin 一个包含通用权限控制的后台管理系统

    vue-quasar-admin   Quasar-Framework 是一款基于vue.js开发的开源的前端框架, 它能帮助web开发者快速创建以下网站:响应式网站,渐进式应用,手机应用(通过Cor ...

  8. 分布式任务系统gearman的python实战

    Gearman是一个用来把工作委派给其他机器.分布式的调用更适合做某项工作的机器.并发的做某项工作在多个调用间做负载均衡.或用来在调用其它语言的函数的系统.Gearman是一个分发任务的程序框架,可以 ...

  9. java中的取整(/)和求余(%)

    1.取整运算符取整从字面意思理解就是被除数到底包含几个除数,也就是能被整除多少次,那么它有哪些需要注意的地方呢?先看下面的两端代码: int a = 10; int b = 3; double c= ...

  10. 静态资源压缩(GZIP) 专题

    1.开GZIP有什么好处?答:Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度.Tips:如果网站的用户分布比较分散,并且静态文件过大,可以将 ...