1.运算符
1.1
算术运算符
- 加、减、乘、除、取余
- %,取模(取余数),余数是0,表示能够被整除
- 两个浮点数无法直接判断是否相等
1.2
递增递减运算符
- 前置递增递减运算符。++变量,表示先自增加1,再返回值;
- 后置递增递减运算符。变量++,表示先返回原值,再自增加1;
- 练习
var i = 10;
var b = ++i;
console.log(i);//输出11
console.lopg(b);//输出11
var i = 10;
var b = i++;
console.log(i);//输出11
console.lopg(b);//输出10
1.3
比较运算符
- 比较运算后,会返回一个Boolean值作为结果;
- <小于,<=小于或等于,>=大于或等于,大于>;
- ==,判等号,判断两边值是否相等,不比较类型,会有隐式转换;
- !=,不等号;
- ===,全等号,要求值和数据类型都一致, !=-
1.4
逻辑运算符
- 返回值为布尔值,用于多个条件的判断
- &&,逻辑与,与,and,两边都是true,才会返回true;
- ||,逻辑或,或,or,两边都是false=,才会返回false;
- !,逻辑非,非,not,取反等
1.5
短路运算(逻辑中断)
- 逻辑与。如果表达式1的值为真,则输出表达式2;如果表达式1的值为假,则输出表达式1;
console.log( 123 && 456 ); // 456
console.log( 0 && 456 ); // 0
console.log( 123 && 456 && 789 ); // 789
- 逻辑或。如果表达式1的值为真,则输出表达式1;如果表达式1的值为假,则输出表达式2;
console.log( 123 || 456 ); //123
console.log( 0 || 456 ); //456
console.log( 123 || 456 || 789 ); //123
- 如果表达式1为真,那么表达式2不会被执行
var num = 0;
console.log(123 || num++);//123
console.log(num);//0
1.6
赋值运算符
- 把数据赋值给变量;
- =,直接赋值;
- +=、-=,加、减一个数后再赋值
var age = 10;
console.log(age += 10);//age = 10+10,输出20
- *=、/=、%=,乘、除、取模后再赋值
var str = 100;
console.log(str /= 20);//str = 100/20,输出5
var str1 = 21;
console.log(str1 %= 4);//str1 = 21/4的余数,输出1
1.7运算符优先级
- 括号();
- 一元运算符,++、–、!
- 算术运算符,先乘除后加减;
- 关系运算符,>、<=、>=、>;
- 相等运算符,判等号、不等号、全等号;
- 逻辑运算符,先&&后||;
- 赋值=;
- 逗号
2.if分支语句
2.1流程控制
- 流程控制是指控制代码按照特定的顺序去执行的方式,顺序结构、分支结构、循环结构
2.2
if分支语句
- 语法结构
if(条件表达式){
执行语句
}
- 执行思路。如果if里面的条件表达式结果为真true,则执行大括号里面的执行语句;
- 进入网吧案例
var age = prompt('请输入您的年龄:');
if(age >= 18){
alert('come on baby~');
}
2.3
if else双分支语句
- 语法结构
if (条件表达式) {
执行语句1
} else {
执行语句2
}
- 执行思路。如果表达式结果为真,那么执行语句1,否则,执行语句2;
- 判断案例
var year = prompt('请输入一个年份:');
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
alert('这一年是闰年');
}else{
alert('这一年是平年');
}
2.4
if else if 多分支语句
- 多分支语句,利用多个条件来选择不同的语句执行,得到不同的结果,多选1的过程
- 语法结构
if (条件表达式1) {
语句1;
} else if (条件表达式2) {
语句2;
} else if (条件表达式3) {
语句3;
} else {
上述条件都不成立执行此处代码
}
- 执行思路。如果满足条件表达式1,那么就会执行语句1,执行完毕后,就会退出整个if分支语句;
- 判断成绩案例
var grade = prompt('请输入您的成绩:');
if(grade >= 90){
alert('A');
}else if(grade >= 80){
alert('B');
}else if(grade >= 70){
alert('C');
}else if(grade >= 60){
alert('D');
}else{
alert('E');
}
2.5
三元表达式
- 有三元运算符组成的式子称为三元表达式;
- 语法结构:
表达式1 ? 表达式2 : 表达式3
- 执行思路:如果表达式1为 true ,则返回表达式2的值,如果表达式1为 false,则返回表达式3的值;
- 数字补0案例
var num = prompt('请您输入一个数字:');
var result = num < 10 ? '0' + num : num;
alert(result);
3.switch语句
3.1
switch语句
- switch语句也是多分支语句,也可以实现多选1,当要针对变量设置一系列的特定值的选项时,就可以使用switch;
- 语法结构
switch(表达式){
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
...
default:
执行最后的语句;
}
- 执行思路,利用我们表达式的值和case后面的选项值匹配,如果匹配上,就执行该case里面的语句,如果都匹配不上,那么执行default里面的语句;
- 查询水果案例
var fruit = prompt('请输入您查询的水果:');
switch(fruit){
case '苹果':
alert('苹果2块5一斤');
break;
case '西瓜':
alert('西瓜1块钱一斤');
break;
case '葡萄':
alert('葡萄3块5一斤');
break;
case '香蕉':
alert('香蕉1块1根');
default:
alert('抱歉,没有您要的水果');
}
3.2switch和if else的区别
- 判断的值是确切的几种值的时候,建议使用switch判断;
- 判断的内容是一个范围的时候,建议使用if判断;
- 在开发中,90%以上都是使用if判断,很少使用switch判断