JS 函数小记

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

functionName: function(){}   冒号前面是函数也可简写functionName(){}花括号中是函数执行的代码块

带参数的函数,在调用带参数的函数时,你可以向其传递值,这些值称为参数。myFunction(argument1,argument2)当声明函数时,请把参数作为变量来声明:function myFunction(var1,var2){代码}  变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。

首先要清楚函数的定义:

1、函数是一组可以随时随地运行的语句。2、函数是ECMAScript的核心。3、函数是由这样的方式进行声明的:关键字function、函数名、一组参数、以及置于花括号中的待执行代码。

函数基本的语法结构:function functionName(arg0,arg1,...argN){statements},函数可以通过其名字加上花括号中的参数进行调用,

局部JavaScript变量

1、在JavaScript函数内部声明变量(使用var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。

2、由于1中局部变量的特性,我们可以在不同的函数内使用相同变量名称,因为只有声明过该变量的函数才能识别出该变量,

3、在该函数运行结束后,函数体内部的本地变量就会被删除,也就是该变量只在声明它的函数体内部生效

全局JavaScript变量

在函数外部声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

 

重点:

带有返回值的函数:  有时,我们希望函数将计算的结果或者值返回调用它的地方。通过使用return语句就可以实现。在使用return语句时,函数会停止执行,并返回指定的值。当然整个JavaScript并不会停止执行,仅仅是函数。JavaScript将继续执行代码,从调用函数的地方。函数调用即将被返回值取代

如:function myFunction(a,b){

       return a*b; 

}

console.log(myFunction(3,4)); 打印结果:  12

JavaScript函数定义:

JavaScript使用关键字function定义函数。

函数可以通过声明定义,也可以是一个表达式。

函数声明    function functionName(parameters){执行的代码}     函数声明后不会立即执行,会在我们需要的时候调用。

函数表达式    JavaScript函数可以通过一个表达式定义。函数表达式可以存储在变量中:

例:var x = function(a,b){return a*b};  此时函数表达式便存储在变量x中,打印x结果:function(a,b){return a*b}

同时,函数存储在变量后,变量也可以作为一个函数使用:

例:var x = function(a,b){return a*b};  var z = x(4,3);此时打印z变量结果:12

上述函数是一个匿名函数。函数存储在变量中,不需要函数名称,通常通过变量名来调用。

Function()构造函数

以往我们了解到的是函数通过关键字function定义。函数同样可以通过内置的JavaScript函数构造器定义。

例:var myFunction = new Function("a","b","return a * b");     打印构造函数console.log(myFunction(4,3)); 打印结果:12

实际上我们可通过变量存储函数也能达到同等效果,如上可写成变量存储函数的方式

例:var myFunction = function(a,b){return a * b};   var x = myFunction(4,3);  打印结果:12

函数提升(Hoisting)

函数提升相同于变量提升,函数提升是JavaScript默认将当前作用域提升到前面去的行为。提升应用在变量的声明与函数的声明,因此函数可以在声明之前调用

自调用函数:函数表达式可以"自调用"。自调用的表达式会自动调用。如果表达式后面紧跟(),则会自动调用。不能调用声明的函数,通过添加括号,来说明它是一个函数表达式。

例:(function(){console.log("我自己调用了我自己,这种行为可以说我自己执行了这个函数")})();

打印结果:我自己调用了我自己,这种行为可以说我自己执行了这个函数

以上函数实际上是一个匿名自我调用的函数(没有函数名)。

函数可以利用存储在变量中的特性作为一个变量值使用

例:function myFunction(a,b){return a * b}  var x = myFunction(4,3) * 2   打印结果:24

函数是对象,在JavaScript中使用typeof操作符判断函数的类型将返回"function".但是JavaScript描述为一个对象更加准确。JavaScript函数有属性和方法。arguments.length属性返回函数调用过程接收的参数个数。

例:funciton myFunction(a , b){returen arguments.length;}  console.log(myFunction(3,4))  打印结果:2

函数arguments对象

JavaScript函数有个内置的对象arguments对象。arguments对象包含了函数调用的参数数组。

例:通过arguments可以很方便的找到最大的一个参数的值。

x = findMax(1, 123, 500, 115, 44, 88);

function findMax(){

             var i, max = arguments[0];

              if(arguments.length < 2)  { return max};

            for(let i = 0;i < arguments.length;i++){

            if(arguments[i] > max){

             max = arguments[i];

         }

    }

return max;

}

console.log(x);

打印结果:500

或者利用arguments计算所有参数的和;

JavaScript函数闭包:由于函数块内变量在函数执行完就被删除,所以函数内部的变量只是函数自己在玩,当然声明在函数体外部的变量除外,当然我们也有处理的办法,那就是JavaScript内嵌套函数,理由如下:

1、所有函数都能访问全局变量。2、在JavaScript中,所有的函数都能访问它们上一层的作用域,意味着内层函数可以使用外层函数的变量,在将外层函数变量处理后改变外层函数变量的值,但是这样的话,我们的内层函数和外层函数都能执行一次,好像还不满足我们的需求,好在JavaScript提供的有函数的自我调用,

例:<button οnclick="myFunction">计数</button>

<script>

     var add = (function(){

      var counter = 0;

     return function(){return counter += 1;}

})()

function myFunction(){

      console.log(add());

}

</script>

变量add指定了函数自我调用的返回值。add变量可以作为一个函数使用。非常棒的部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值