文章目录
任务简介
一、任务要求
正确使用JavaScript中 switch
和 if
知识得到该月正确的天数(用户输入年份和月份),年份、月份是否正确,最终结果输出在控制台。
二、相关知识
1.类型转换
有三个函数可以把非数值转换为数值:Number()、parseInt() 和parseFloat()。Number()可以用来转换任意类型的数据,而后两者只能用于转换字符串。parseInt()只会将字符串转换为整数,而parseFloat()可以将字符串转换为浮点数。
2.控制台输出
注:在网页中按F12弹出控制台
console.log("输出一条日志");//最常用
console.info("输出一条信息");
console.warn("输出一条警告");
console.error("输出一条错误");
3.运算符(逻辑运算符)
&& 与:&&可以对符号两侧的值进行与运算并返回结果,运算规则:
(1)两个值中只要有一个值为false,就返回false,只有两个值都为true时,才会返回true。
(2)JS中的“与”属于短路的与,如果第一个值为false,则不会检查第二个值。
(3)非布尔值时:如果两个都为true,则返回第二个值,如果两个值中有false,则返回靠前的false的值。
|| 或:||可以对符号两侧的值进行或运算并返回结果,运算规则:
(1)两个值中只要有一个true,就返回true,只有两个值都为false,才会返回false。
(2)JS中的“或”属于短路的或,如果第一个值为true,则不会检查第二个值。
(3)非布尔值时:如果两个都为false ,则返回第二个值,如果两个值中有true,则返回靠前的true的值。
! 非:!可以用来对一个值进行非运算,所谓非运算就是对一个布尔值进行取反操作,true变false,false变true,运算规则:
(1)如果对一个值进行两次取反,它不会变化。
(2)非布尔值时:先会将其转换为布尔值,然后再取反,所以我们可以利用该特点,来(3)将一个其它的数据类型转换为布尔值,可以为一个任意数据类型取两次反,来将其转换为布尔值,原理和Boolean()函数一样。
4.if…else
if…else语句是一种最基本的控制语句,它让JavaScript可以有条件的执行语句。
语法格式:
形式1
if(exp)
statement
形式2
if(exp)
statement
else
statement
形式3
if(exp1)
statement
else if(exp2)
statement
else
statement
5.switch…case
switch…case是另一种流程控制语句。
switch语句更适用于多条分支使用同一条语句的情况。
语法格式:
switch (语句) {
case 表达式1:
语句...
case 表达式2:
语句...
default:
语句...
}
注:需要注意的是一旦符合case的条件程序会一直运行到结束,所以我们一般会在case中添加break作为语句的结束。
任务实施
1.新建一个html和js文件,在html中外链JavaScript(文件1.js)
2.编写1.js中的代码
(1)让用户输入year和month值。
(2)判断用户输入year和month值和是否正确。
(3)判断是否为闰年。
(4)奉上js源码。
var year = Number(prompt('输入年份:'));
var month = Number(prompt('输入月份:'));
// 判断年份知否正确
if (year < 10000 && year > 0) {
// 判断月份是否正确
if (month <= 12 && month > 0) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log('31天');
break;
case 4:
case 6:
case 9:
case 11:
console.log('30天');
break;
case 2:
// 判断是否为闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
console.log('29天');
}
default:
console.log('28天');
}
} else {
console.log('你输入的month值有误!(1~12)')
}
} else {
console.log('你输入的year值有误!(1~9999)')
}
3.运行演示
注:控制台输出在左下角。
(1)正确日期(2022年2月)
(2)错误年份(20220年2月)
(3)错误月份(2022年13月)