函数
在JS中 函数就是一个方法(一个功能体),基于函数一般都是为了实现某个功能
var total=10;
total+=10;
total=total/2;
total=total.toFixed(2);//=>保留小数点后边两位,(数字有一个方法toFixed用来保留小数点后面的位数)
...
在后续的代码中,我们依然想实现相同的操作(加10除以2),我们需要重新编写代码
这样的方式会导致页面中存在大量冗余代码,也降低了开发效率,如果我们能把实现这个功能的代码进行‘封装’
后期需要这个功能执行即可,这样就好了。
函数诞生的目的就是为了实现封装 :把实现一个功能的代码封装到一个函数中,后期想要实现这个功能,
只需要把这个函数执行即可,不需要在此编写重复的代码,起到了— — 低耦合高内聚
(减少页面中的冗余代码,提高代码的重复使用率)的作用
function fn(){
var total=10;
total+=10;
total/=2;
total=total.toFixed(2);
console.log(total);
}
fn();
fn();
//想用多少次,我们就执行多少次。我们就执行多少次即可
ES3标准:
function 函数名([参数]){
函数体;实现功能的JS 代码
}
//=>函数执行
函数名();
====
ES6标准中创建函数:
let 函数名(变量名)=([参数]){
函数体
}
函数名();
函数作为引用数据类型中的一种,它也是按照引用地地址来操作的。
function fn(){
var total=10;
total+=10;
total/=2;
total=total.toFixed(2);
console.log(total);
}
fn();
【创建函数】
1.函数也是引用类型,首先会开辟一个新的堆内存,把函数体中的代码当作'自字符串'存储到内存中,
(对象向内存中存储的是健值对)
2.把开辟的堆内存地址赋值给函数名(变量名)
此时我们输出fn(切记不是fn())代表函数当前本身
如果执行fn()这是把函数执行
所以是否加小括号是两种不同本本质的操作。
【函数执行】
目的:把之前存储到堆内存中的代码字符串变为真正的JS代码自上而下执行,从而实现应有的功能
1.函数执行,首先会形成一个私有的作用域(一个供代码执行的环境,也是一个栈内存)
2.把之前在堆内存中存储的字符串复制一份过来,变为真正的JS代码 在新开辟的作用域中自伤而下执行。