js中的函数应用
什么是函数,函数的概念
- 函数就像一个黑匣子,里面的东西你都不知道,但是你提供一些材料放进去,他可以制造出你需要的东西;
- 可以让多个一样的功能封装组合起来,然后想执行几次就执行几次
- 函数就是另外一种形式的变量
函数的创建和执行
- 定义函数的方式
- 函数声明
function test(){ }
- 函数表达式
//命名函数表达式 var test = function abc(){ } //匿名函数表达式 var test = function(){ }
- 函数的组成形式
function 变量名(形参){}
变量名(实参);
- 函数声明
函数的参数
- 函数的写法
//形式参数 -- 形参 function sum(a,b){ //里面写逻辑 var c = a + b; document.write(c); } //实际参数 -- 实参 sum(1,2);
- 形参多实参少的情况
- 实参就是undifined;
- 实参多形参少的情况
- 实参的内容会存入arguments中
- 形参判断个数和形参判断个数
- 形参可以通过函数名.length来判断个数
- 实参可以通过arguments.length来判断个数
- 实参和arguments是映射关系,但是如果形参比实参多,多的一部分不映射
函数的返回值
- 返回值的关键字 return
- 终止函数
function sum (a,b){
console.log('a');
//如果写了return,那么后面的东西不执行,return会执行并且把里面的东西返回出去
return;
console.log('b');
}
- 返回值
function sum(){
return 123;
}
var res = sum();
- 可以将这个行数返回出来并接收到res变量之中
预解析(预编译)
函数声明整体提升
变量 声明提升
- 语义分析
- 浏览器会通篇扫描一遍
函数的作用域
++预编译的现象++
- 暗示全局变量(伪全局变量):即任何变量,如果变量未经声明就赋值,此变量就为全局所有
- e.g: a = 123;
- e.g: var a = b = 123;
- 一切声明的全局变量,全是window的属性。
- e.g: var a =123; ===> window.a=123;
- window 就是全局的域 (Global Object)
- 里面的函数的变量可以访问外面的变量
- 外面的函数变量不能访问里面的变量