1.函数
Number()/parseInt()/parseFloat()/alert()/prompt()...
函数分为系统函数和自定义函数
函数:是一个功能体,提供若干个数据,返回处理结果,用于封装要重复执行的代码
(1)创建普通函数
function 函数名称(){ 函数体 —— 封装的要重复执行的代码 } |
函数只是创建不会执行函数体中的代码
调用
函数名称() //执行函数体中封装的代码
(2)创建带有参数的函数
function 函数名称(参数列表){ //用于接收外部传递的数据 函数体 } |
调用
函数名称(参数列表) //实际传递的数据
创建函数时的参数称为形参,调用函数时的参数称为实参,实参会赋值给形参,实参和形参的数量可以不匹配,如果形参未被赋值则为undefined。
(3)创建带有返回值的函数
function 函数名称(参数列表){ 函数体 return 值; //返回值,函数调用后得到的结果 } |
调用
函数名称(参数列表)
return用于返回函数调用的结果,如果函数中没有写return或者return后不加任何值则返回undefined,一旦return执行就会结束函数的执行。
对比return和break return用于函数中,结束函数的执行 break用于循环和switch-case,结束循环或者switch-case的执行 |
2.变量的作用域
全局变量:在全局作用域下声明的变量就是全局变量,可以在任意的作用域访问到
局部变量:在函数作用域下声明的变量就是局部变量,只能在当前的函数作用域下访问到
全局作用域:函数以外的作用域
函数作用域:函数以内的作用域
函数内不加var声明的变量是全局变量
变量提升:在程序执行前,会将var声明的变量提升到所在作用域的最前边,只是提升声明,赋值不提升
3.函数的作用域
全局函数:在全局作用域下创建的函数,可以在任意作用域下访问到
局部函数:在函数作用域下创建的函数,只能在当前函数作用域下访问到
作用域链:多个作用域嵌套构成的作用域结构,在寻找变量的时候,先到当前的作用域下寻找,如果当前没有会不断往上一级作用域寻找。
函数提升:程序执行前,会将函数提升到所在作用域的最前边,是整体提升