JS系列js函数

10次阅读

共计 1466 个字符,预计需要花费 4 分钟才能阅读完成。

函数 function

在 js 中函数就是一个方法(一个功能体)基于这个函数,一般是为了实现某个功能。

    var total =10;
    total+=10;
    total=total/2;
    total=total.toFixed(2);// 保留小数点后面 2 位(数字有一个方法 toFixed 用来保留小数点后面的位数)...
在后续的代码中,我们依然想实现相同的操作(加 10 除以 2),需要重新编写
//=> 这样导致代码大量冗余,不利于开发,降低了开发效率。如果进行对这个功能的代码封装,后期执行即可。

函数诞生的目的就是实现封装 :把实现一个功能的代码封装到一个函数中,后期想要实现这个功能,只需要把这个函数执行即可,不必要再次编写重复代码,起到了 ” 低耦合高内聚(减少页面冗余代码,提高代码的重复使用率)”` 的作用
javascript 封装

   function fn(){
        var total=10;
        total+=10;
        total/=2;  == (total=total/2)
        total=total.toFixed(2);
        console.log(total);
    }
    fn();
    fn();

...
想用多少次我们就执行多少次函数即可

====
ES3 标准中:
//=> 创建函数
function 函数名 ([参数] ){函数体:实现功能的 js 代码}

//=> 函数执行
函数名();

====
ES6 标准中:
//=> 创建函数
let 函数名(变量名) = ([参数]) =>{函数体}
函数名();
例如:let fn=()=>{let total=10;};
fn();

函数作为引用数据类型中的一种,它也是按照引用地址来操作的,接下来学习函数运行机制:
函数运作机制

var obj = {
    name:'前端' ,
    age:9
};

   function fn(){
        var total=10;
        total+=10;
        total/=2;  == (total=total/2)
        total=total.toFixed(2);
        console.log(total);
    }
    fn();
   
1. 函数也是引用类型,首先会开辟一个新的堆内存,把函数体中的代码当做“字符串”存储到内存中(对象向内存中存储的是键值对)2. 把开辟的堆内存地址赋值给函数名(变量名)此时我们输出 fn(切记不是 fn())代表当前函数本身,如果我们执行 fn(),这是把函数执行,所以是否加小括号是两种不同本质的操作【函数执行的目的】目的:把之前存储到堆内存的代码字符串变成真正的 js 代码自上向下执行,从而实现应有的功能。1. 函数执行首先会形成一个私有的作用域(一个供代码执行的环境,也是一个栈内存)2. 把之前在堆内存中存储的字符串复制一份过来,变成真正的 js 代码,在新开辟的作用域中自上而下执行

js 中的三座大山:1. 堆栈内存寄闭包 2. 面向对象 3. 异步编程

函数中的参数

参数是函数的入口: 当我们在函数中封装一个功能,发现一些原材料不确定,需要执行函数的时候用户传递进来才可以,此时我们基于参数的机制,提供出入口即可。

    //=> 此处的参数叫形参:入口,形参是变量(n/ m 就是变量)function sum(n,m) {
     //=>n 和 m 分别对应要求和的两个数字
     var total=0;
     total=n+m;
     console.log(total);
}

//=> 此处函数执行传递的值是实参:实参是具体的数据值 10,20
sum(10,20); //=>n=10,m=20
sum(10); //=>n=10,m=underfined
sum(); //=>n 和 m 都是 underfined
sum(10,20,30);//=>n=10,m=20, 30 没有形参变量接受
正文完
 0