JavaScript--引用数据类型--function

来源:互联网 发布:非农数据股市 编辑:程序博客网 时间:2024/05/20 13:17
1.引用数据类型—Function类型--函数的定义方式
javaScript 函数有两种定义方式
1.声明:
function add( ){
}
2.函数表达式
var add = function( ){
}
<script>
//方式一:声明
//函数的声明也会被提升
functionmethod() {
console.log("hello world!");
}
//方式二:函数表达式
varmethod1 =function () {
console.log(("hello world"));
};
</script>

TIPs:
用函数声明定义的函数,会被js执行引擎提升到作用域的最前方
用函数表达式定义的时候,不会被提升。
<script>
console.log(method);//function
varmethod= "hello";
functionmethod() {
console.log("hello")
}
</script>
tips:
函数的提升会高于变量的提升
3.函数调用
函数声明后必须调用,才能执行函数内部代码。不调用,就永远不会执行。
a)函数名();
b)函数自执行:
//在定义完成这个匿名函数之后,立即执行它。
<script>
(function() {
console.log("hello")
})()
</script>

3.函数的参数

<script>
//传入形式参数
functionadd(num1,num2) {
varsum = num1 + num2;
//将计算结果返回给调用者
returnsum ;
}
//调用者传入的是实际参数
varresult= add(3,4);
</script>
函数的参数可以使任意的数据类型:
<script>
functionmethod1() {
console.log("我是method1");
}
//任何数据类型都可以被当作参数传递
functionmethod2(fun,num) {
fun();
}
method2(method1,1)
</script>
4.函数的作用域
1.局部变量
var关键字定义在函数内部的变量,叫做局部变量
<script>
functionmethod() {
//在函数内部用var声明的变量,是局部变量
//不能再函数外部被使用
varnum =123;
}
method();
console.log(num);//报错
</script>
TIPs:
如果在函数内部的变量没有用var关键字修饰,那么它是一个全局变量
2.全局变量
定义在函数外部的变量
全局变量的作用于在当前的文件。
即使在函数中使用完毕,也不会被销毁。他们会在当前页面被关闭时销毁。

练习:
var a= 10;
function method() {
a= 20;
}
document.write(a);//a=10 函数并没有被调用

5.事件与事件处理函数

<body>
//为标签添加一个点击事件
<buttononclick="handle()">点我吧</button>
<script>
//事件处理函数
functionhandle() {
alert("你。。。")
}
</script>
</body>
6.递归
函数自己调用自己,称为函数的递归。