javascript 函数初探 (一)

马是函数?

所谓函数,本质上是一种代码的分组形式。我们可以通过这种形式赋予某组代码一个名字,以便与之后的调用。下面,我们来示范以下函数的声明:

function sum(a, b){
    var c = a + b;
    return c;
}

一般来说,函数声明通常由一下以下几部分组成:

  1. 关键词 function;

  2. 函数名称,即这里的sum;

  3. 函数所需的参数,即这里的a, b。一个函数通常具有0个或多个参数。参数之间用逗号分隔。

  4. 函数所要执行的代码块,我们称之为函数体。

  5. return子句。函数通常都有一个返回值,如果一个函数没有显式的返回值,我们就会默认他的返回值为undefined。

需要注意的是,一个函数只能有一个返回值,如果我们需要同时返回多个值,可以考虑一下把她们放进一个数组中,以数组元素的形式返回。

以上所讲的语法过程叫做函数声明。在javascript中。函数声明只是创建函数的方法之一,改天我们会介绍其她的。。。。。。。(。?_?)/~~~

    累觉不爱(。?_?)/~~~(。?_?)/~~~(。?_?)/~~~(。?_?)/~~~(。?_?)/~~~(。?_?)/~~~(。?_?)/

如果我们需要使用一个函数,那就必须去调用她,那就在她后面加一个用来传递参数的小括号吧!

我们来调用一下上面的函数 ======》》》》

var her = sum(1, 2);
her;  //返回 3

在定义一个函数的同时,我们往往会设置这个函数所需要的调用参数。当然,也可以不给她设置参数。假如您给设定了参数,在调用的时候又忘了传递参数相关的参数值,那么,javascript引擎会自动将没有传递的参数设定为undefined。

技术角度上说参数又分为形参和实参两种。

形参是指定义函数时所用的那些参数 。如sum(a, b)中的a, b。

实参是指调用函数时所传递进来的那些参数。 如上述sum(1, 2)中的1,2。

对于那些已经传递进来的参数,javascript是来这不惧的,反正我用不到的我就无视你,自动忽略。。。。,实际上我们还可以创建一些在参数方面更为灵活的函数。那就要跪谢函数内部的arguments变量了。这个变量是函数们生下来就有的,在函数中都能调用。她能返回函数所接受的所有参数。 d=====( ̄▽ ̄*)b  是不是无比强大!!!

    d=====( ̄▽ ̄*)b d=====( ̄▽ ̄*)b d=====( ̄▽ ̄*)b    洪荒之力好样的!!!

例如:

function her(){
    return arguments;
}
her();  // 返回 [];

her(1, 2, 3, true, JY); // 返回 [1, 2, 3, true, JY]

通过arguments我们接着完善sum函数;

function sum(){
     var i, res=0, nums=arguments.length;
     for(var j=0; j<nums.length; j++){
         res += nums[j];
     }
     return res;
}

sum(1, 2, 3);   // 6
sum(1, 1, 1);  // 3
sum();  // 0

表达式arguments.length 返回的是函数被调用时所接受的参数。但是arguments实际上不是一个数组,而是一个类似于数组的对象。(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可)

可以验证一下arguments是不是数组

Array.prototype.testArg = "test";
function funcArg() {
    alert(funcArg.arguments.testArg);
    alert(funcArg.arguments[0]);
}

alert(new Array().testArg); // result: "test"
funcArg(10);                // result: "undefined"  "10"
时间: 2024-10-27 08:02:30

javascript 函数初探 (一)的相关文章

javascript 函数初探 (五)--- 几种类型的函数

即时函数: 目前我们已经讨论了匿名函数在回调时的应用.接下来,我们来看看匿名函数的另一种应用实例 --- javascript即时函数: 比如: ( function(){ alert('her'); } )() 虽然这种语法看上去有点吓人,但其实非常的简单 --- 我们只需将匿名函数的定义放进一对括号中,然后外面再紧跟一对括号即可. 其中第二对括号起到了 ‘立即调用’ 的作用,同时她也是我们向匿名函数传递参数的地方. ( function(a){ alert( 'her is' + a + '

javascript 函数初探 (四)--- 回调函数

回调函数 既然函数与任何被赋值给变量的数据是相同的,那么她当然可以像其他数据那样被定义.删除.拷贝,以及当成参数传递给其它函数. 我们定义一个函数,这个函数有两个函数类型的参数,然后他会分别执行这两个参数所执行的函数. function her(){ return a() + b(); } function one(){ return 1; } fucntion two(){ return 2; } her(one, two) // 3 实际上,我们也可以直接用匿名函数(即函数表达式)来替代on

javascript 函数初探 (二)

javascript的预定义函数: javascript引擎中有一组可以随时调用的内建函数. 这些内建函数包括: 1. parseInt() 2. parseFloat() 3. isNaN() 4. isFinite() 5. encodeURI() 6. decodeURI() 7. encodeURIComponent() 8. decodeURIComponent() 9. eval() =================>>>>> 黑盒函数 一般来说,当我们调用一个

javascript 函数初探 (三)

javascript 变量的作用域: 这是一个至关重要的问题.特别是当我们从别的语言转向javascript时,必须要明白一点,即在javascript中,变量的定义并不是以代码块作为作用域的,而是以函数作为作用域.也就是说变量是在某个函数中定义的,那么她在函数以外的地方是不可见的.而如果函数是定义在if或for这样的代买块中,那么她随处可见. 全局变量:是定义在所有函数只外的变量.相反局部变量则是定义在某个函数中.其中,函数内的代码可以像访问自己的局部变量一样访问全局变量,反之则不可以. va

javascript 函数初探 (六)--- 闭包初探#1

首先我们来看一个函数: var a = 'global variable'; var F = function(){ var b = 'local variable'; var N = function(){ var c = 'inner local'; return b } return N; } cosole.log(b) // b:is not defind; 函数F中包含了局部变量b,因此b在全局空间里是不可见得. 函数N有自己的私有空间,同时也可以访问F()和全局空间,所以变量b对她来

ABP展现层——Javascript函数库

ABP展现层——Javascript函数库 点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之21.ABP展现层——Javascript函数库 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate ASP.NET Boil

C#实现百度地图附近搜索&amp;调用JavaScript函数

前一篇文章"C#调用百度地图API入门&解决BMap未定义问题"讲述了如何通过C#调用百度API显示地图,并且如何解决BMap未定义的问题.这篇文章主要更加详细的介绍百度地图的一些功能,包括附近搜索.城市搜索.路线规划.添加覆盖物等等. 希望文章对你有所帮助!如果文章中有不足之处,还请海涵~ 百度官方文档:http://developer.baidu.com/map/jsmobile.htm 官方DEMO例:http://developer.baidu.com/map/jsde

JavaScript函数,作用域以及闭包

JavaScript函数,作用域以及闭包 1. 函数 (1). 函数定义:函数使用function关键字定义,它可以用在函数定义表达式或者函数声明定义. a. 函数的两种定义方式: * function functionName() {} * var functionName = function(){} b. 两种函数定义不同之处 1). 声明提前问题 函数声明语句   :声明与函数体一起提前 函数定义表达式 :声明提前,但是函数体不会提前 请看下面图示:绿色线上面实在js初始加载的时候,查看

HTML 学习笔记 JavaScript (函数)

函数是由事件驱动的或者当他被调用时执行的可重复使用的代码块 实例 <!DOCTYPE html> <html> <head> <script> function myFunction() { alert("Hello World!"); } </script> </head> <body> <button onclick="myFunction()">点击这里</b