JS函数
函数:简单来说就是将程序中一段代码封装,再起一个名字。
步骤:
1.封装
function 函数名(参数列表){
函数体;
return结果;
}
解释:
参数:接收传入函数的数据,函数执行是必要的数据。参数其实就是一个普通变量,使用时与变量完全一致。当函数执行时,必需某些数据,那么就需要定义参数,告诉调用者函数必需的数据。作用:告诉调用者函数执行时必需的数据,使函数更加灵活。
函数体:函数结构中封装的解决一类任务的代码段。
return:退出函数顺便返回结果!作用:返回函数执行的结果;中止并退出函数。
2.调用
js引擎会按照封装的代码去执行预定的任务。
调用的方式:函数名(实际参与任务的参数列表)
3.作用域:变量的可用范围!
1.局部作用域:函数范围内,变量只能在其定义的函数内部被使用。
2.全局作用域:在程序任何位置都可以使用的变量。
3.块级作用域
注意:只有用var声明的变量会被放在当前作用域;没有用var声明,直接赋值产生的变量,默认都会在全局创建。
注释:如果给一个未声明的变量赋值,会自动在全局创建这个变量并赋值;如果使用一个未声明的变量,报错:referenceerror;
4.声明提前
在程序开始执行之前,会将var声明的变量和function声明的函数,提前到当前作用域中的顶部集中创建。赋值留着原地。
缺点:扰乱程序正常执行的顺序;
解决:
1.建议将所有变量和函数集中创建在当前作用域底部。
2.可以使用let代替var。
3.函数:第二种创建方式,不会被声明提前。eg:var fun=function () {}
按值传递:对于原始类型的数据,其值保存在变量本地。当使用此变量参与运算时,只是将变量中的值复制到一个副本交给程序使用,不修改原值。对于引用类型的数据,值无法保存在本地,变量中保存着对数据的引用(地址)。在赋值操作时,是将数据的地址传递给新变量。当新变量修改数据时,原变量也会被影响。
完结!