1.引用数据类型—Function类型--函数的定义方式
javaScript 函数有两种定义方式
1.声明:
function add( ){
}
2.函数表达式
var add = function( ){
}
<
script
>
//方式一:声明
//函数的声明也会被提升
function
method
() {
console
.
log
(
"hello world!"
);
}
//方式二:函数表达式
var
method1
=
function
() {
console
.
log
((
"hello world"
));
};
</
script
>
TIPs:
用函数声明定义的函数,会被js执行引擎提升到作用域的最前方
用函数表达式定义的时候,不会被提升。
<
script
>
console
.
log
(
method
);
//function
var
method
=
"hello"
;
function
method
() {
console
.
log
(
"hello"
)
}
</
script
>
tips:
函数的提升会高于变量的提升
3.函数调用:
函数声明后必须调用,才能执行函数内部代码。不调用,就永远不会执行。
a)函数名();
b)函数自执行:
//在定义完成这个匿名函数之后,立即执行它。
<
script
>
(
function
() {
console
.
log
(
"hello"
)
})()
</
script
>
3.函数的参数
<
script
>
//传入形式参数
function
add
(num1,num2) {
var
sum
= num1 + num2;
//将计算结果返回给调用者
return
sum
;
}
//调用者传入的是实际参数
var
result
=
add
(
3
,
4
);
</
script
>
函数的参数可以使任意的数据类型:
<
script
>
function
method1
() {
console
.
log
(
"我是method1"
);
}
//任何数据类型都可以被当作参数传递
function
method2
(fun,num) {
fun();
}
method2
(
method1
,
1
)
</
script
>
4.函数的作用域
1.局部变量
用
var关键字
定义在函数内部的变量,叫做局部变量
<
script
>
function
method
() {
//在函数内部用var声明的变量,是局部变量
//不能再函数外部被使用
var
num
=
123
;
}
method
();
console
.
log
(
num
)
;//报错
</
script
>
TIPs:
如果在函数内部的变量没有用var关键字修饰,那么它是一个全局变量
2.全局变量
定义在函数外部的变量
全局变量的作用于在当前的文件。
即使在函数中使用完毕,也不会被销毁。他们会在当前页面被关闭时销毁。
练习:
var
a
=
10
;
function
method
() {
a
=
20
;
}
document
.
write
(
a
);
//a=10 函数并没有被调用
5.事件与事件处理函数
<
body
>
//为标签添加一个点击事件
<
button
οnclick=
"
handle
()
"
>
点我吧
</
button
>
<
script
>
//事件处理函数
function
handle
() {
alert
(
"你。。。"
)
}
</
script
>
</
body
>
6.递归
函数自己调用自己,称为函数的递归。