JS——函数
一、函数的种类
1.无参函数
function showName() {
alert("我是无参函数");
}
2.有参函数 在函数中的参数为“形式参数”
形式参数:定义函数时指定的参数,具体数据是由实际参数决定
实际参数:调用函数的时候指定的参数,实参的值会影响形式参数*/
function showName(name) {
alert(name);
}
二、函数的调用方式
1.直接调用
function showName(name) {
alert(name);
}
showName();
2:函数调用一般和元素的事件一起使用,调用格式(和元素事件绑定)
事件名=“函数名()”
onclick="showName('A')"
三、匿名函数
匿名函数用变量接收。变量名称+()可以让函数执行
var show = function () {
alert("1111");
};
show();
匿名函数的自调用
方法一
(function () {
alert("我是匿名函数!")
})();
方法二
(function () {
alert("我是匿名函数!")
}());
方法三
!function () {
alert("我是匿名函数!")
}();
四、return关键字
给主调函数返回一个被调函数的计算结果。
function calc(num1,c,num2) {
switch (c){
case '+' :
var result = num1 + num2 ;
break;
case '-' :
var result = num1 - num2 ;
break;
case '*' :
var result = num1 * num2 ;
break;
case '/' :
var result = num1 / num2 ;
break;
}
return result;
/*alert(result);*/
}
var r = calc(parseInt(prompt("请输入第一个数:")),prompt("请输入四则运算符:"), parseInt(prompt("请输入第二个数:")));
alert(r);
五、实参不确定的情况
1、在实参个数不确定的情况下,可以省略形参,在函数体内部使用arguments
argument是一个数组,里面包含了函数调用的所有实参!
function show() {
alert(arguments[0]);
}
show("aaa");
2、arguments.callee属性
arguments.callee属性指向函数本身,可以用于递归
function show() {
console.log(arguments.callee);
}
show("aab");
3.arguments的this属性
var zhangsan ={
name: "zhangsan",
age: "28",
height: "189",
say:function () {
alert(zhangsan.name);
/*按f12看console属性*/
console.log(this);
},
eat:function () {
alert("汉堡包!");
},
}
zhangsan.say();
六、变量作用域
全局变量
1.写在函数前面的变量
2.没用var修饰的变量
没用var修饰的变量,会一层一层的往上找,如果找到同名变量,就进行赋值,或覆盖原有值
如果到最后都没有找到同名变量,就声明一个同名全局变量。
局部变量
定义在函数内部的变量。
代码举例:
var num = 10;
function calc1() {
num = 5;
alert(num + 15);
}
function calc2() {
alert(num + 20);
}
calc1();
calc2();