一、函数概述

  1、概述

    把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用函数的作用就是封装一段代码,将来可以重复使用。

    在JavaScript中,函数也作为一种数据类型存在,而且是引用数据类型,函数名就是指向其内存空间地址的引用。

    Demo:

 var a = function() {
return 2;
};
var b = a;
a.fname = "tom";
alert(b.fname); //结果为tom

二、使用函数

  1、函数的定义

    a、函数声明

     语法格式

function 函数名(){
// 函数体
}

    b、函数表达式(匿名函数)

     语法格式

var fn = function() {
// 函数体
}

      注意

      •  只定义函数并不会执行,只有当函数被调用才会执行;
      • 函数命名使用 动词+名词 的格式,表示做一件事情。
      • 在 Java 中函数(方法)允许重载,但是在 JS 中函数的重载会直接覆盖掉上一次的定义,即不允许重载。

  2、函数的调用

    语法格式:

函数名(实际参数列表);

         注意:函数体只有在调用的时候才会执行,可以调用多次,重复使用,调用JavaScript函数时系统不检查传入参数的个数和类型

  3、函数的参数

    函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部。

    带参数的函数声明 语法格式:

function 函数名(形参1, 形参2, 形参...){
// 函数体
}

     带参数的函数调用 语法格式:

函数名(实参1, 实参2, 实参3);

     a、形参与实参

     形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。

     实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。

      b、

    扩展:当传入的参数为基本数据类型时,在函数内部改变形参的值,并不会影响外部实参的值。

  4、函数的返回值

    当函数执行完成后,期望函数给一些反馈进行后续的运算,这个时候就需要函数的返回值。

    a、返回值语法

//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参...){
//函数体
return 返回值;
} //可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3);

    b、注意事项

      •  如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
      • 如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
      • 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
      • 数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。

三、函数的 arguments 隐形参数

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

  Demo:

   // 求任意个数的和
function getSum() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
} var sum = getSum(5, 1, 3, 4);
console.log(sum);

总结:

  (1)方法定义是,形参的类型不用写,返回值类型也不写。

  (2)方法是一个对象,如果定义名称相同的方法,会覆盖

  (3)在JS中,方法的调用只与方法的名称有关,和参数列表无关

  (4)在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数

JavaScript 函数(一)的更多相关文章

  1. ABP(现代ASP.NET样板开发框架)系列之21、ABP展现层——Javascript函数库

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之21.ABP展现层——Javascript函数库 ABP是“ASP.NET Boilerplate Project ...

  2. JavaScript权威设计--JavaScript函数(简要学习笔记十一)

    1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...

  3. JavaScript 函数

    JavaScript 函数 介绍:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块.嗯,就像Java中封装的方法一样. 将脚本编写为函数,就可以避免页面载入时执行该脚本. 函数包含着一些代码 ...

  4. javascript 函数初探 (一)--- 神马是函数

    神马是函数? 所谓函数,本质上是一种代码的分组形式.我们可以通过这种形式赋予某组代码一个名字,以便与之后的调用.下面,我们来示范以下函数的声明: function sum(a, b){ var c = ...

  5. JavaScript函数的概念

    函数是这样的一段代码,它只定义一次,但可能被执行或调用任意多次. JavaScript函数是参数化的:函数的定义会包含形参,这些参数在函数的整体中像局部变量一样工作.函数调用时会为形参提供实参的值.除 ...

  6. Javascript函数重载,存在呢—还是存在呢?

    1.What's is 函数重载? );//Here is int 10 print("ten");//Here is string ten } 可以发现在C++中会根据参数的类型 ...

  7. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别

    函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...

  8. javascript 函数重载 overloading

    函数重载 https://en.wikipedia.org/wiki/Function_overloading In some programming languages, function over ...

  9. JavaScript语言精粹读书笔记 - JavaScript函数

    JavaScript是披着C族语言外衣的LISP,除了词法上与C族语言相似以外,其他几乎没有相似之处. JavaScript 函数: 函数包含一组语句,他们是JavaScript的基础模块单元,用于代 ...

  10. 常见的JavaScript函数

    JavaScript函数一共可分为5类:常规函数.数组函数.日期函数.数学函数和字符串函数. (1)常规函数(9个) alert函数:显示一个警告对话框,包括一个“确定”按钮. confirm函数:显 ...

随机推荐

  1. 火车头data下任务文件夹的SpiderResult.db3文件用什么软件打开

    火车头采集器默认是用sqlite数据库来保存数据的,新建一个采集,打开data/任务/发现有一个SpiderResult.db3文件,.db3是sqlite的存储文件后缀,那么要如何查看这些文件呢?用 ...

  2. 21-C#笔记-名称空间

    和C++不同的地方: 1. 访问内部成员的方式使用 点 namespace_name.item_name; 2. using 的语法 using System; 参考: http://www.runo ...

  3. java 8 学习二(Lambda表达式)

    粗略的概括:lambda表达式主要用来实现“函数接口”中“唯一”的抽象方法用的. 他的特殊版有 方法引用,构造函数引用,用对应的接口实例接收即可. 可以把Lambda表达式理解为简洁地表示可传递的匿名 ...

  4. plv8 rpm包创建

    以下是从一个三方rpm构建,获取到的rpm 包制作spec,主要是学习下pg 扩展rpm 包的打包 rpm src 包 下载地址 https://fedora.pkgs.org/29/fedora-x ...

  5. django -- 模版语言之过滤器Filters和for循环

    前戏 在前面写的图书管理系统中,我们对模版语言应该已经不陌生了,使用{{ }}包裹起来的就是模版语言,只需要记住两种就可以了 {{ 变量名 }}            变量相关的 {% %}      ...

  6. BurpSuite pro v2.0 使用入门教程

    BurpSuite简介 BurpSuite是进行Web应用安全测试集成平台.它将各种安全工具无缝地融合在一起,以支持整个测试过程中,从最初的映射和应用程序的攻击面分析,到发现和利用安全漏洞.Burps ...

  7. Linux系统查看是32位还是64位

    uname -a 如果是64位机器,会输出x86_64

  8. websocket通信1009错误,

    问题说明: springboot继承 WebSocketConfigurer实现websocket通信服务,服务器端报错,"The decoded text message was too ...

  9. 【IntelliJ IDEA学习之三】IntelliJ IDEA常用快捷键

    版本:IntelliJIDEA2018.1.4 按场景列举一.打开设置CTRL + ALT + S:打开设置(File-->Settings...)Ctrl + Shift + Alt + S: ...

  10. Java通过poi读取excel中文件

    maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</a ...