首页 > 代码库 > 函数基础

函数基础

函数的定义 1.函数的声明 function 函数名(){ } 2.函数表达式 var aa=function(){ } 函数的调用 1.函数名() 函数分类:方式一: 有名函数 匿名函数(匿名函数无法直接调用,如果想要调用,需要使用匿名函数的自调用) ( function(){ alert(); })(); 方式二: 内置函数:官方提供 自定义函数 函数的参数(形参 实参) 参数是一一对应的 实参>形参 --多余实参被省去 实参<形参 --多余形参为undefined arguments 实参集合列表 类数组 有length长度 有下标 但是没有数组方法,适合形参个数不确定的情况 全局变量:在函数外部,script下 定义的变量 局部变量: 在函数中声明的变量,就是局部变量 不使用var声明的变量是全局变量,不推荐使用。 变量退出作用域之后会销毁,全局变量关闭网页或浏览器才会销毁 return 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined 如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined 函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。 推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值。 函数的作用域与预解析 例如:谷歌浏览器 html css: 渲染引擎webkit js解析器: v8引擎 js解析器内部 解读代码的时候分两步:1.查找声明的变量和函数 2.执行代码 预解析 js解析器执行js代码的时候,分为两个过程: 预解析过程和代码执行过程 预解析过程: 1. 把变量的声明提升到当前作用域的最前面,只会提升声明,不会提升赋值。 2. 把函数的声明提升到当前作用域的最前面,只会提升声明,不会提升调用。 3. 在提升的变量和函数中,如果名称有冲突,则函数覆盖变量,后者覆盖前者

函数基础