函数:
1, 定义
定义后可以多次调用的一个代码块;
特点:
1,多条语句的封装
2, 实现代码复用
2, JS中函数语法
function 函数名(参数列表){
函数体
[返回值]
}
参数列表:
如果没有参数可以为空
如果有多个参数,参数之间逗号间隔;
参数列表不能给默认值
有参数的函数,调用时需要传参,如果未传参,值是undefined;
返回值:
函数体内,经过运算后需要传递给调用者的值;
返回值是可选的;
return x; 进行返回;
JS中只能返回1个值; (区别于python,可以返回多个)
define
eg:
function show1(){
console.log('中华人民共和国万岁!')
}
function show2(name){
return '你好' + name;
}
3, 函数调用:
在任意JS合法位置处,都允许做函数调用;
var ret = func_name(参数列表)
如果有参数,则传参;无参数则为空()
有返回值,则用变量接收;无返回值,不需要接收;
作业:
改版日期计算器为函数版本
1, 整体功能封装到函数中
2, 将闰年判断的功能提出来独立成一个函数;
接收一个参数表示年份
返回一个boolean值表示是否为闰年的结果
3, 整体功能中所有的闰年判断通过函数调用完成
4, 通过按钮的单机操作,来调用日期计算器;
4, 变量的作用域
1, 定义:
变量的作用域指变量的可访问范围;
1, 作用域的分类
局部变量:
使用var关键字,声明在函数内的变量;
范围: 只能在声明的函数内使用;
全局变量:
1, 在function之外声明的变量都是全局变量
2, 声明不使用var关键字的时候,都是全局变量;
注意: 全局变量可以使用在各个函数中,及各个位置处;
推荐所有全局变量使用在function之外,用var关键字声明;
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Day5</title>
</head>
<body>
<script>
function date_calc()
{
var year = parseInt(window.prompt('YEAR:'));
var month = parseInt(window.prompt('Month:'));
var day = parseInt(window.prompt('Day:'));
var feb_flag,dayth = 0;
function year_type(year){
if (year%4 == 0 && year%100 != 0|| year % 400 == 0)
{
return true;
}else{
return false;
}
}
for (var i = 1;i < month ;i++)
{
switch (i)
{
case 4:
case 6:
case 9:
case 11:
dayth += 30;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dayth += 31;
break;
case 2:
dayth += ( 28 + year_type(year));
break;
}
}
dayth += day;
var total_year_days = 0;
for (i = 1900; i < year ; i++)
{
if (year_type(i))
{
total_year_days += 366;
}else{
total_year_days += 365;
}
}
week_day = (total_year_days + dayth)%7;
var date = '';
switch (week_day)
{
case 0:
date = '日';
break;
case 1:
date = '一';
break;
case 2:
date = '二';
break;
case 3:
dadte = '三';
break;
case 4:
date = '四';
break;
case 5:
date = '五';
break;
case 6:
date = '六';
break;
}
console.log(year.toString() + '年' + month.toString() + '月' + day.toString() + '日是星期'+date);
}
</script>
<button onclick="date_calc()" >日期计算</button>
</body>
</html>