基本知识

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

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. Spring系列(三):Spring IoC中各个注解的理解和使用

    原文链接:1. http://www.cnblogs.com/xdp-gacl/p/3495887.html       2. http://www.cnblogs.com/xiaoxi/p/5935 ...

  2. 关于css盒模型

    在css中,width和height指的是内容区域的宽度和高度.增加内边距,边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸.假设框的每个边上有10个像素的外边距和5像素的内边距,如果希望 ...

  3. Django rest framework(6)----序列化

    目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...

  4. 字典的.get方法

    字典的.get方法表示是dict.get(key,default)用于判断建是否存在,存在返回键对应的值,不存在返回指定的default值 dict = {'a':1,'b':2} dict.get( ...

  5. Linux修改本机/etc/hosts的hostName

    1.Linux修改本机别名/etc/hosts的hostName后经常不生效解决 Linux修改本机别名/etc/hosts的hostName后经常不生效, 比如我们/etc/hosts的内容如下: ...

  6. 使用非阻塞ServerSocketChannel、SocketChannel代替ServerSocket和Socket

    http://blog.csdn.net/timliang18601860/article/details/7104485

  7. Java JFrame图形界面 ----一个简单的窗口

    #开始 申请博客已经有一段时间了 但是一直没有时间写博文(其实还是懒虫侵蚀了大脑) 最近正在学习JFrame做窗口 遇到了很多的问题 为了解决问题也谋杀了很多的脑细胞 为了让更多的朋友不死的很多脑细胞 ...

  8. Python使用Socket写一个简单聊天程序

    b2b模式的聊天工具 服务端: # 链接 while True: print('等待连接...') sock,adr = server_socket.accept() while True: try: ...

  9. ECMAScript 6 入门 ----Generator 函数

    本文转自:阮一峰老师的ECMAScript 6 入门,有时间可以看下评论! Generator 函数 简介 基本概念 Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不 ...

  10. 跟我学ASP.NET MVC之三:完整的ASP.NET MVC程序-PartyInvites

    摘要: 在这篇文章中,我将在一个例子中实际地展示MVC. 场景 假设一个朋友决定举办一个新年晚会,她邀请我创建一个用来邀请朋友参加晚会的WEB程序.她提出了四个注意的需求: 一个首页展示这个晚会 一个 ...