js函数

定义函数的方法

1、函数声明
function函数名(){}


        function sum(num1, num2) {
          return num1 + num2;
        }

2、函数表达式
var函数名=function(){}
var函数名=function函数名(){}

   var  sum =function(num1, num2) {
          return num1 + num2;
        }

3、实例化函数
var函数名=newFunction('var a=1;console.log(a)');

var aa= new Function("a","b","return  a+b")

anonymous:匿名函数

函数的返回值

函数默认的返回值为undefined需要返回指定的值需要return语句
函数中的return语句是指定函数调用后的返回值return语句只能在函数体内出现中断语句的执行
例如

  function sum(num1, num2) {
             sum = num1 + num2;
        }
        console.log(sum(10, 20));
它打印出来的结果为undefined;

如果

  function sum(num1, num2) {
             return = num1 + num2;
        }
        console.log(sum(10, 20));
打印结果为30

函数的参数

形参
形式性的参数:命名的参数只提供的便利,但不是必需的

   var  sum =function(num1, num2) {
          return num1 + num2;
        }
         console.log(sum(10, 20));
num1,num2为形参

实参
实际性的参数:调用有函数时传入有值的参数
不介意参数的多少,参数的类型arguments对象:实参的数组,从而获取传递给函数的每一个参数
arguments对象的长度是由传入的参数个数决定的,不是由定义函数时的命名参数的个数决定的
也有length属性,代表传入了几个参数

   var  sum =function(num1, num2) {
          return num1 + num2;
        }
         console.log(sum(10, 20));
10,20为实参
 function aa(){
          console.log(arguments[2]);
        }
        aa(2,3,4,5,6);
打印结果为4
 var obj = 'hello world'
        for (i = 0; i < obj.length; i++) {
            (function (n) {
                console.log(n);
            })(i)
        }

结果为
微信截图_20190729205555.png

函数内外(局部与全局)变量,及区别

局部变量
在其内边定义的变量成为局部变量
只能在内部访问
全局变量在函数体外,整个执行环境为window下定义的变量成为全局变量可在全局及局部均可访问到

   var a = 30
        function aa() {
             a= 20
            console.log(a) //结果为20
        }
        aa()
        console.log(a) //结果为30

自执行函数

(function (形参) {
    console.log(n); //执行代码
    })(实参)








你可能感兴趣的:(js函数)