一、语句
语句:JavaScript程序的执行单位为行(line),也就是一行一行的执行,一般情况下,每一行就是一个语句
语句和表达式的区别:
- 语句(statement)主要是为了进行某种操作,一般情况下是不需要返回值的
* 语句以分号结束,一个分号就表示一个语句结束
* 多个语句可以写在一行
* 分号前面可以没有任何内容,JavaScript引擎将其视为空语句
- 表达式是为了得到返回值,一定会返回一个值
* 表达式不需要分号结尾
* 一旦在表达式后面添加分号,JavaScript引擎就将表达式视为语句,这样会产生一些没有任何意义的语句
var a = 1 + 3 ; var b = 'abc';//语句以分号结尾,一个分号就表示一个语句结束。多个语句可以写在一行内。
;;;//表示3个空语句。
'abc';//语句只是单纯地产生一个值,并没有任何实际的意义。
var a = 1 + 3;// 1+3叫做表达式(expression),指一个为了得到返回值的计算式
二、if结构
if语句:主要是判断,先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句
语法:
if(表达式) {
代码块;
}
// 1、如果a>b,输出对;
var a = 30,b = 20;
if(a > b){
console.log('对');
}
// 2、问某某成年了吗?
var user = '某某',age = 20;
if(age >= 18){
console.log('某某' + age + '岁成年了')
}
var userless = prompt("请输入你的姓名"),ages = parseInt(prompt("请输入你的年龄"));
if(ages >= 18){
alert(userless + ages + '岁成年了')
}
三、if-else语句
if-else:两个分支,只执行一个
语法:
if(表达式) {
代码块1;
}else {
代码块2;
}
// 1、问某某成年了吗?
var user = prompt("请输入姓名"),age = parseInt(prompt("请输入年龄"));
console.log(typeof(user));
if(age >= 18){
alert(user + age + '岁成年了,可以自己负责');
}else{
alert(user + age + '岁未成年,不能去网吧')
}
// 2、判断两个数中的最大值,把较大值输出,需要用户手动输入
var num1 = Number(prompt()),num2 = Number(prompt());
console.log(typeof(num1,num2));
if(num1 > num2){
alert('较大值是' + num1);
}else{
alert('较大值是' + num2);
}
四、三元表达式
两个分支只执行一个,这种情况都可以用三元表达式
// 判断两个数中的最大值,把较大值输出,需要用户手动输入
var num1 = Number(prompt('请输入一个数'));
var num2 = Number(prompt('请输入另外一个数'));
var result = num1 > num2 ? num1 : num2;
alert('较大的数是:' + result);
//或var result = num1 > num2 ? alert('较大的数是:' + num1) : alert('较大的数是:' + num2);
// 判断成年情况
var user = prompt("请输入姓名"),age = parseInt(prompt("请输入年龄"));
console.log(typeof(user));
var cn = age >= 18 ? alert(user + age + '岁成年了,可以自己负责') : alert(user + age + '岁未成年,不能去网吧');
五、if-else if-else语句
if语句:一个分支
if-else语句:两个分支
if-else if...-else:多个分支
最终只会执行一个分支
语法:
if(条件1) {
条件1成立所执行的代码块1;
}else if(条件2) {
条件2成立所执行的代码块2;
}else if(条件3) {
条件3成立所执行的代码块3;
}...
else {
以上所有条件都不成立所执行的代码块n;
}
// 成绩等级:<60E 60-69D 70-79C 80-89B 90-99A 100S
var degree = Number(prompt('请输入你的分数(满分100分)'));
if(!isNaN(degree)){
if(degree === 100){
alert('你的等级为:S');
}else if(degree >= 90 && degree <= 99){
alert('你的等级为:A');
}else if(degree >= 80 && degree <= 89){
alert('你的等级为:B');
}else if(degree >= 70 && degree <= 79){
alert('你的等级为:C');
}else if(degree >= 60 && degree <= 69){
alert('你的等级为:D');
}else if(degree < 60){
alert('你的等级为:E');
}
}else{
alert('输入成绩有错!')
}
六、switch-case
switch-case语法:
switch(某个具体条件) {
case值1:
判断的值和值1相等,就执行的代码块1;
break;
case值2:
判断的值和值1相等,就执行的代码块2;
break;
case值3:
判断的值和值1相等,就执行的代码块3;
break;
... ...
default:值都不相等的时候执行的代码块;
}
// 已知等级,判断分数区间
var degree = prompt('请输入你的等级(S/A/B/C/D/E)');
switch(degree){
case 'S':alert('100');
break;
case 'A':alert('90-99');
break;
case 'B':alert('80-89');
break;
case 'C':alert('70-79');
break;
case 'D':alert('60-69');
break;
case 'E':alert('60以下');
break;
default:alert('输入错误请重新输入!');
}
- break:跳出整个语句
- switch-case语句:多个分支,只执行一个
- 一般对范围判断时,用if系列
- 对具体值作判断时,用switch
七、实践作业
1.判断平年闰年
// 闰年:能被4整除,但不能被100整除;或者能被400整除(if-else)
var year = parseInt(prompt('请输入年份'));
if(!isNaN(year)){
if(year % 4 == 0 && year % 100 != 100 || year % 400 == 0){
alert(year + '是闰年');
}else {
alert(year + '是平年');
}
}else {
alert('输入错误,请重新输入');
}
/*或者用if-else-if-else
if(!isNaN(year)) {
if(year % 4 == 0 && year % 100 != 0) {
console.log(year + '是闰年');
}else if(year % 400 == 0) {
console.log(year + '是闰年');
}else {
console.log(year + '是平年');
}
}else {
alert('输入错误,请输入正确年份(正整数)!')
} */
2. 用户输入一个数,判断是奇数,还是偶数
//用户输入一个数,判断是奇数,还是偶数
var num = parseInt(prompt('请输入一个整数'));
if(!isNaN(num)){
if(num % 2 == 0){
alert(num + '是偶数');
}else{
alert(num + '是奇数');
}
}else{
alert('输入错误,请重新输入!');
}
3. 根据用户输入的月份显示对应的天数(二月忽略平年闰年,直接输出28天)
//根据用户输入的月份显示对应的天数(二月忽略平年闰年,直接输出28天)
var month = prompt('请输入月份');
console.log(month);
switch(month){
case '1':alert(month + '月份有31天');
break;
case '2':alert(month + '月份有28天');
break;
case '3':alert(month + '月份有31天');
break;
case '4':alert(month + '月份有30天');
break;
case '5':alert(month + '月份有31天');
break;
case '6':alert(month + '月份有30天');
break;
case '7':alert(month + '月份有31天');
break;
case '8':alert(month + '月份有31天');
break;
case '9':alert(month + '月份有30天');
break;
case '10':alert(month + '月份有31天');
break;
case '11':alert(month + '月份有30天');
break;
case '12':alert(month + '月份有31天');
break;
default:alert('输入错误,请重新输入');
}