(1)知识点
(1.1)定义:封装一项任务的步骤清单的代码段,再起一个任务名
(1.2)声明函数:function 函数名(参数1,参数2,...){代码片段;return;}
(1.3)调用函数:函数名(变量1,变量2,...)
(1.4)函数执行:被调用时才会执行;可以被反复调用
(1.5)参数变量
1.参数变量:专门接收方法执行所必须的数据的变量
2.何时使用:如果一个函数,必须提供指定数据,才能正常执行时,需要提供几个数据,就定义几个参数接收
3.如何定义参数:不需要var,直接在函数名后的括号中定义参数名,每个参数名之间用逗号分隔
4.何时,如何传入参数值:调用时,按照参数定义的个数和顺序传入
5.为什么使用参数:参数可让方法变的更灵活-
(1.6)作用域:【全局变量作用域】和【局部变量作用域】
(1.7)按值传递:两变量间赋值或向函数中传递参数时,都是将原变量中的值复制一个副本给对方,修改一方,另一方不受影响
(2)细化
(3)实践
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
init();
var a = 1;//全局变量a
var b = 2;//全局变量b
//其实本质上还有一个对象来专门存储全量变量
var globalVar = new Array();
globalVar[0] = a;
globalVar[1] = b;
function init() {
/**
* 'p':传入方法的值
* 1 :传入方法的值
* createRepeatStr 可以被反复调用
*/
createRepeatStr('p', 1);
createRepeatStr('h', 2);
createRepeatStr('f', 3);
noReturn();
//返回值,赋值给totalVal
var totalVal = calcNumberTotalVal(10);
// 2个变量间赋值,会拷贝一份副本
var name = 'phf';
var name2 = name;
name = 'hzq';
console.log(name);//'hzq'
console.log(name2);//'phf'
// 函数赋值,也会拷贝一份副本
var num1 = 10
var totalVal1 = calcNumberTotalVal(num1);
num1 = 20;
console.log(totalVal1);//45
console.log(num1);//20
}
/**
* 函数作用:创建重复的字符串
* 函数名:createRepeatStr
* @param repeatVal :重复值
* @param repeatCount :重复次数
*/
function createRepeatStr(repeatVal, repeatCount) {
//var rtnStr = null; 这里不能使用null,因为拿null+str = nullstr
var rtnStr = '';//一定要自己实践,看到自己预期的结果
for (var i = 0; i < repeatCount; i++) {
rtnStr += repeatVal;
}
console.log(rtnStr);
return rtnStr;
}
function noReturn() {
console.log('我这个函数,没有return,仅仅在console侧打印一句话')
}
function calcNumberTotalVal2(num) {
if (num > 10) {
// 希望函数不继续往下执行
return;
}
var rtn = 0;
for (var i = 0; i < num; i++) {
rtn += i;
}
return rtn;
}
function calcNumberTotalVal(num) {
var rtn = 0;
for (var i = 0; i < num; i++) {
rtn += i;
}
return rtn;
}
</script>