4.函数数据类型的运行机制

1.17函数数据类型的运行机制

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

   var total=10;
    total+=10;
    total=total/2;
    total=total.toFixed(2); //=>保留小数点后两位

函数诞生的目的就是为了实现封装,吧实现一个功能的代码封装到一个函数中,低耦合高内聚(减少页面中的冗余代码,提高代码的重复使用率)

function fn(){
		var total=10;
	    total+=10;
	    total=total/2;
	    total=total.toFixed(2);
    }
    fn();
    
    ES3标准中
    语法:
    function 函数名([参数]){
	    函数体:实现功能的js代码
    }
    =====
    ES6标准中创建箭头函数
    语法:
    let 函数名(变量名)=([参数])=>{
	    函数体
    }
    
    let fn=()=>{
	    let total=10;
	    ...
    }

函数作为引用数据类型中的一种,它也是按照引用地址来操作的

function fn(){
		var total=10;
	    total+=10;
	    total=total.toFixed(2);
	    console.log(total)
    }
    1.函数也是引用类型,首先会开辟一个新的堆内存,把函数体中的代码当做“字符串”存储到内存中(对象向内存中存储的是键值对)
    2.把开辟的堆内存地址赋值给函数名(变量名)
    
    [函数执行]
    把之前存储到堆内存中的代码字符串变为真正的js代码自上而下执行,从而实现应有的功能
    1.函数执行,首先会形成一个私有的作用域(一个供代码执行的环境,也是一个栈内存)
    2.把之前在堆内存中存储的字符串复制一份过来,变为真正的js代码,在新开辟的作用域中自上而下执行

在这里插入图片描述
输出fn代表当前函数本身,fn()执行函数

在这里插入图片描述

1.18函数中的形参与实参

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

//=>此处的参数是形参:入口,形参(n/m)是变量
     function sum(n,m){
	    var total = =0;
	    total = n+m;
	    console.log(total);
    }
    //=>此处函数执行传递的值是实参,实参是具体的数据值
    sum(2,6); //=>n=2,m=6
    sum(10); //=>n=10,m=undefined
    sum(); //=>m和n都是undefined
    sum(10,20,30); //=>n=10,m=20, 30没有形参变量接收
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值