1.函数的概念和意义
函数:由事件驱动或调用时,可重复执行的代码块
意义:减少代码冗余 ,提高了灵活性,可维护性,可扩展性
2.函数的创建
函数声明
function functionName() {
//函数体 具体要执行的代码
console.log("ok");
函数表达式
var functionName = function () {
//函数体 具体要执行的代码
};
var bar = function () {
alert(20);
};
借助构造函数 Function系统内置的一个构造函数(类)
//var functionName = new Function();
3.函数的执行
事件驱动执行
/* btn.onclick = function () {
console.log("ok");
}; */
/* var foo = function () {
console.log("ok");
};
btn.onclick = foo;
console.log(foo); */
调用执行 函数名()
/* var foo = function () {
console.log("ok");
};
function bar() {
console.log("ok1");
}
foo();
bar();
foo(); */
封装一个九九乘法表函数
<input type="button" value="九九乘法表" id="btn" />
<script>
function jjb() {
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
document.write(j + "x" + i + "=" + i * j + " ");
}
document.write("<br>");
}
}
//btn.onclick = jjb;
jjb();
</script>
4.函数的参数
求某两个数的和
参数:在创建一个函数,放到小括号里的变量,称为形参,在调用一个函数时,放到小括号里的值,称为实参
需要时就给 当函数内部的一些值是可变的,可以考虑使用参数表示
形参和实参 一一对应
如果形参的个数比实参的个数多,多余的形参会得到一个默认值undefined
如果形参的个数比实参的个数少,多余的实参无效
function doAdd(x, y) {
var he = x + y;
document.write(he);
}
doAdd();
doAdd(10);
//doAdd(121212, 3554353);
5.解释执行声明提升
js引擎在执行js时
分两步: 1. 先扫描当前环境中的所有的声明,包括变量声明和函数声明,将其提升至对应环境的顶部 2. 执行代码
console.log(a);会输出undefind
var a = 10;//
变量声明,只提升变量名,函数声明,整个函数都提升
同名的变量和函数,都提升时,函数的优先级高
例:/* console.log(a); //undefined
var a = 10;
var a = function () {
console.log("ok");
};
console.log(a); //函数体 */
arguments
求任意个数的和
//arguments 当形参的个数不确定,有需要取实参的时候
function foo() {
/* console.log(arguments); //保存了传给函数的所有的实参的一个集合
console.log(arguments[0]); //第一个实参 1
console.log(arguments[1]); //第二个实参 2
console.log(arguments.length); //实参的个数 */
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
foo(1, 2, 3, 3, 4, 5);
return
return 用在函数的内部 1.结束函数执行 2.函数返回值
/* function foo() {
console.log("1");
return;//return后面的代码不再执行了
console.log("2");
}
foo(); */
/* function doAdd(x, y) {
var sum = x + y;
//这个函数没有返回值 没有return 或者return后没有值 默认返回undefined
} */