本文共 2038 字,大约阅读时间需要 6 分钟。
目录
函数
作用:
1.简化代码 2.方便维护 3.提高开发效率 4.提高了代码的复用性,减少代码冗余 格式:标准函数声明语句
function 函数名(参数...){ 函数执行的代码 }
注意,如果使用函数声明语句这种方式声明函数,会具有函数名提升的效果
如 变量提升只在当前作用域(例如:开始加载页面的时候,只对全局作用域下的进行提升,因为此时函数中存储的都是字符串而已)[注意]函数先定义后调用
分类: 1.内置函数(官方提供的函数,系统自身拥有函数) 弹出 alert(); document.write(); 控制台 console.log(); 整数 parseInt(); 浮点数 parseFloat(); 2.自定义函数 根据参数和返回值的不同,可将函数分为四种。 1.无参数无返回值2.有参数无返回值
3.无参数有返回值
返回值:对函数执行完成的结果的返回。 return:结束当前函数,并将return后面的值(表达式/变量)作为函数的运行结果返回。 当我们需要对函数的运算结果进行不同的处理时,需要将函数的结果返回。4.有参数有返回值
匿名函数
关键词function后没有函数,称为匿名函数(匿名函数不具有函数名提升效果,因此不能在匿名函数创建之前使用它)
这种写法是将一个匿名函数赋值给变量,这时,这个匿名函数又称函数表达式,
匿名函数不能有函数名提升会报错
有参数函数
这两个是对比(注意下面的a是字符串)若函数形参重名,使用时以最后一个形参为准
函数的传参 值传递与引用传递
参数为值传递,传递副本;
引用传递时传递地址,操作的是同一个对象
引用传递(引用传递时传递地址,操作的是同一个对象)
封装函数
1.确定函数的执行代码:函数体。
2.找出变量(不确定值。),将其设置为形参 3.如果需要对返回结果进行不同的处理,则定义返回值。var arr = ["苏轼", "辛弃疾", "李白"];function joint(arr) { var str = ""; for (var i = 0; i <= arr.length - 1; i++) { str += arr[i]; if (i == arr.length - 1) continue; str += "|"; } return str;}alert(joint(arr));
调用函数
1.函数名(参数列表);
2.函数调用模式
对象调用模式
函数的返回值 return
1,如果函数有返回值,需要通过return返回;
2,如果函数不需要返回数据时,则无返回值,或者说返回undefined;
3,如果函数不需要返回值时,使用return,则表示结束方法 作用: 1,返回结果给调用者, 2,结束语句函数的属性
【length属性】
函数的length属性表示形参个数,arguments对象的length属性表示实参的个数
【name属性】可以访问到函数指定的名字
匿名函数的name属性为空例子:定义一个函数,参数的数量不固定,
function joint() { var str = arguments[0]; for (var i = 1; i < arguments.length; i++) { str = Number( str + arguments[i]) ; } document.write(str); } joint(1, 2,6, 3,4)
作用域
变量存在的范围
全局变量 直接写在Script标签中的变量,在页面中的任意位置都可以访问到。 在页面打开创建,在页面关闭时销毁。 局部变量 局部变量是定义在函数内部的变量.这个变量只能在函数内使用.例外,函数中的 形参也是局部变量. 每一次调用时创建,调用结束会销毁。【注意】
如果局部变量与全局变量重名,则使用局部变量。若函数内部没有找到该变量,则去全局变量中查找。在函数定义变量时,若没有加var关键字,使用后自动变为全局变量
上述例子你如果加了var 就会报错为未定义
例子下面这个例子是说标准的命名函数可以在没有这个函数时调用(命名函数有函数名提升),但是要注意赋值时,要在调用前就将值赋好
作用域链就是寻找变量时找不到会一级一级往上寻找
递归
函数之间可以互相调用,如果函数内部调用了其自身,则我们称其为递归调用。
特点:
1.函数自己调用自己 2.一般情况下还有参数 3.一般情况下有返回值.方法:
1.找这一次计算与上一次计算的关系。 2.调用自身 3。找到函数结束的条件。转载地址:https://blog.csdn.net/z18237613052/article/details/112245754 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!