JavaScript的最重要的一个部分是制作其他代码可以重用的代码。要做到这一点,你可以把代码组织成执行特定任务的函数。函数是结合在一个单一的块中,并给予一个名称的一系列代码语句。然后,你就可以通过引用该名称来执行块中的代码。

  1、定义函数

  你可以使用function关键字后跟一个描述该函数用途的名称、在()中的零个或多个参数的列表,以及在{}块中的一个或多个代码语句来定义一个函数。例如,下面是一个网控制台写入"Hello World"的函数的定义:

  function myFunction(){

    console.log("Hello World");

  }

  要执行myFunction()中的代码,你需要做的所有工作就是在主JavaScript,或者在另一个函数中添加下面一行:

    myFunction();

  

  2、传递变量给函数

  你经常需要将特定的值传递给函数,而函数在执行他们的代码时,将使用这些值。通过以逗号分隔的形式将值传递到函数。函数定义需要在()中有一个与传递进来的值的数量匹配的变量名列表。例如,下面的函数接受两个参数,name(名字)和city(城市),并使用它们来构建输出字符串:

    function greeting(name,city){

      console.log("Hello" + name);

      console.log(". How is the weather in" + city);

    }

  要调用greeting()函数,你需要传递一个name值和一个city值。该值可以是直接的值或先前定义的变量。为了说明这一点,下面的代码执行一个name变量,和以一个直接字符串作为city的greeting()函数:

    var name = "Brad";

    greeting(name,"Florence");

  3、从函数返回值

  通常情况下,一个函数需要返回一个值给调用代码。我们添加一个后面跟着变量或值的return关键字从函数返回值。例如,下面的代码调用一个函数来格式化字符串,把该函数返回的值赋给一个变量,然后将该值写入控制台:

    function formatGreeting(name,city){

      var retStr = "";

      retStr += "Hello <br>" + name + "/n";

      retStr += "Welcome to" + city +"!";

    return retStr;

    }

    var greeting = formatGreeting("Brad","Rome");

    console.log(greeting);

  你可以在函数中包含不止一个return语句。当函数遇到一个return语句时,函数的执行代码会立即停止。如果return语句包含要返回的值,则返回该值。下面的例子展示了一个函数,他测试输入,并且如果输入是零,就立即返回:

    function myFunc(value){

      if (value == 0)

        return value;

       <如果值不为零,要执行的代码>

       return value;

    }

  

  4、使用匿名函数

  到目前为止,你已经看到的所有例子都显示命名的函数。在JavaScript中还可以创建匿名函数。这些函数的好处是:当你调用其他函数时,可以在参数组中直接定义它们。因此,你并不需要正式的定义。

  例如,下面的代码定义了一个函数doCalc(),它接受3个参数。前两个参数应该是数值,第3个参数是一个将被调用,并把这两个数值作为参数传入的函数:

    function doCalc(num1,num2,calcFunction){

      return calcFunction(num1,num2);

    }

  你可以定义一个函数,然后将不带参数的函数名传递给doCalc(),如下面的例子所示:

    function addFunc(n1,n2){

      return n1 + n2;

    }

    doCalc(5,10,addFunc);

  但是,你还可以选择在doCalc()的调用中直接使用一个匿名函数,如下面这两个语句所示:

    console.log(doCalc(5,10,function(n1,n2){return n1+n2;}));

    console.log(doCalc(5,10,function(n1,n2){return n1*n2;}));

  你或许可以看到,使用匿名函数的好处是,你不需要正式定义将不再代码的其他任何地方使用的东西。因此,匿名函数使JavaScript代码更简洁易读。

JavaScript基础——创建函数的更多相关文章

  1. (Frontend Newbie)JavaScript基础之函数

    函数可以说是任何一门编程语言的核心概念.要能熟练掌握JavaScript,对于函数及其相关概念的学习是非常重要的一步.本篇从函数的基本知识.执行环境与作用域.闭包.this关键字等方面简单介绍Java ...

  2. JavaScript基础学习-函数及作用域

    函数和作用域是JavaScript的重要组成部分,我们在使用JavaScript编写程序的过程中经常要用到这两部分内容,作为初学者,我经常有困惑,借助写此博文来巩固下之前学习的内容. (一)JavaS ...

  3. JavaScript 基础回顾——函数

    在JavaScript中,函数也是一种数据类型,属于 function 类型,所以使用Function关键字标识函数名.函数可以在大括号内编写代码并且被调用,作为其他函数的参数或者对象的属性值. 1. ...

  4. JavaScript基础之函数与数组

     函数    函数的基本概念 为完成某一功能的程序指令(语句)的集合,称为函数.有的程序员把函数称为方法,希望大家不要被这两个名词搞晕了. 函数分为:自定义函数.系统函数(经常查看js帮助手册). j ...

  5. javascript基础(五)函数

    原文http://pij.robinqu.me/ 通过call和apply间接调用函数(改变this) call 和 apply带有多个参数,call和apply把当前函数的this指向第一个参数给定 ...

  6. Javascript 基础--JS函数(三)

    一.基本概念:未完成某一个功能的代码(语句,指令)的集合. 二.函数的调用方式: 2.1.函数名(传递参数1,传递参数2)   基本语法 function 函数名(参数列表){ //代码; retur ...

  7. javascript基础-js函数

    一.创建函数的方式 1)普通方式 function cal( num1, num2 ) { return num1+num2; } 2)使用变量初始化方式 var plus = function(nu ...

  8. javascript基础知识-函数

    1.javascript中函数有两种定义方式: 函数语句定义和表达式定义 //函数有定义 function test(){ console.log("This is a function&q ...

  9. Javascript基础--成员函数(六)

    成员函数:也叫方法 1.常用方法 比如:我们希望对象不但有属性,还希望他有行为.(行为在程序中要靠函数来体现)(1) 添加speak函数,输出我是一个好人 (2) 添加jisuan函数,可以计算从1+ ...

随机推荐

  1. UOJ30——【CF Round #278】Tourists

    1.感谢taorunz老师 2.题目大意:就是给个带权无向图,然后有两种操作, 1是修改某个点的权值 2是询问,询问一个值,就是u到v之间经过点权的最小值(不可以经过重复的点) 操作数,点数,边数都不 ...

  2. cocos2d事件处理机制之我见

    cocos2d是使用pyglet事件框架来处理事件的. 其中,包括分发器(发射器)和监听器两部分.下面形象的来打个比方. 这个机制就好比一把枪,三步:扣扳机(触发),上弹(注册),给子弹上***(这个 ...

  3. Oracle Redo

    Redo log 重做日志在Oracle数据库中,有一种日志文件叫做重做日志文件,他就是大家俗称的:redolog.在redolog中又分为两种:在线重做日志与归档日志. ONLINE Redo lo ...

  4. Ucenter,Discuz

    http://www.zb7.com/discuz/   (详细资料网站) Discuz主要是配置前台的模板制作,在二次开发时. UCenter主要是客户端的数据库的链接.client/.

  5. ListView滑动位置精准记忆

    需求场景:一个ListView页面,滑动阅读到某一位置,然后退出页面,下次再进入页面的时候,想要直接滑动到上次阅读的位置. 方案1:页面退出的时候,ListView.getFirstVisiblePo ...

  6. Github Bash

    第一步生成密钥:ssh-keygen -C 'your@email.address' 第二步验证结果:ssh -T git@github.com 第三步克隆:git clone https://git ...

  7. 1.3---字符串重新排列后是否能够变成另一个字符串(CC150)

    import java.util.*; public class Same { public boolean checkSam(String str1, String str2) { // write ...

  8. java socket client

    用tornado做了个socket server.无奈联调的人员对接不上. 于是撸出了以下demo import java.io.*; import java.net.*; public class ...

  9. MY_FIRSH_MODULE

    模块描述 将30个字节的内存空间模仿成设备文件.每次读写不超过30个字节. 模块加载成功之后,需建立设备文件 mknod /dev/mydev c 231 0 模块代码 #include <li ...

  10. linux下合并两个文件夹

    一.我想把自己自定义的软件统一放到man手册路径里.如何和现有的/usr/local/share文件夹合并起来,原来的文件还在? (1)下面是解压出的自定义的bashdb调试软件==>