函数
概念
function是一种复杂数据类型
定义与调用
定义方式:
1. 声明式 与赋值式的区别是,可以先调用后定义
function test1(){
} //定义
test1() //定义了就需要调用才能实现
2. 赋值式 必须先定义再调用,不然报错(控制台红色警告)
var test3 = function(){
}
test3()
TIP: 用var定义的变量,预解析时,会把声明这部分提到前面,即例如var test部分。
所以这里涉及到函数的预解析问题
myFunc()
var myFunc = function(){
console.log("myFunc")
}
myFunc()
这个函数里, var myFunc在预解析中会被调到前面,但是还没有被赋值,所以调用的结果为undefined。 接着var被赋值后,再次调用,就可以正常打印了
预解析(又名:变量声明提升)
提升不能跨function或者script。但是其他访问或使用 是正常的,可以跨
意思就是: 执行代码前,先提炼一下大纲,尽量不报错
函数的参数
注意:
对于你下面调用的时候不写东西,即test()的处理办法,如果不处理,默认不显示,但是在实际运行中,如果你不写东西需要系统做出一些反应来让我们得知你没有写东西
return
(返回值,终端函数)
看需求,需不需要返回或者往外输出,并不是所有函数都需要加return
function add(x,y,z){
var result=x+y+z
return result
}
var res = add(1,2,3)
console.log(res)
function test(a){
console.log("传给后端用",a)
}
函数重名现象
1.同类型,遵循后来者居上
2.变量和function重名
案例:
最后结果是100
TIP: var只提升定义,而function会把整个部分都提升
作用域
变量使用规则
1.访问规则 (就近原则,重名覆盖)
(也叫做作用域查找机制)
(只能是向上找,不能向下找)
2.赋值规则
两种写法都可以,但是建议第一个