JavaScript 运算符+流程控制(if~else,swile)+循环控制(for,for-in,while,do-while)
1、算数运算符 :+ - * / % ++ --
+:任意一边是字符串的是表示的拼接;否则就是数字相加
%: 取余;常用途:通过余数判断奇偶
++:i=i+1
--:i=i-1
i++:先+1,再输出
++i:先输出,再+1 操作
2、比较运算符 :> 大于,< 小于,>= 大于等于,<= 小于等于,== 判断,=== 判断,!= ,!==
==:值相同,返回的就是真,不比较数据类型 ;!=:值相同的取反
===:完全相等,值相同,数据类型也要相同 ;!==:完全相同的取反
3、赋值运算符 :=【掌握】,+=【掌握】,-=, *=,/=,%=
= ,赋值操作,等号右边的值赋给等号左边
+= ,例:num += 1 等同于 num = num + 1
-= ,例:num -= 1 等同于 num = num - 1
*= ,例:num *= 5 等同于 num = num * 5
/= ,例:num /= 2 等同于 num = num / 2
%= ,例:num %= 2 等同于 num = num % 2
4、逻辑运算符
&& 且/与,左右两边都为真,则为真
1)只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
2)只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
断点问题:再&&运算符中,如果&&前面的值为false,后面的不再运行。
|| 或,只要两边有一个为真,则为真
1)前面为假,后面不管为真还是假,返回的是后面的值
2)前面为真,不管后面是真还是假,返回的都是前面的值
断点问题:只要 || 前面为真,那么不管后面是什么都不会执行
&& 且,前面为真,返回的都是后面
前面为假,返回的就是前面
前面为假,断点问题,后面的代码不再执行
|| 或,前面为假,后面不管真假,返回的都是后面
前面为真,返回前面的内容
前面为真,断点问题,后面的代码不再执行
5、三元运算符
<script>
if(5>3){
console.log('true');
}else{
console.log('false');
}
</script>
三元运算符( 三元:三个运算单元 )表达式?为真的结果:为假的结果
三元运算符就是简洁版的if-else语句
<script>
var res = 5>3?'true':'false';
// var res = 条件?为真时执行:为假时执行
console.log(res);
</script>
6、if 语句if语句
1)单分支
if(表达式/条件){
为真的时候,执行{}中的内容
为假的时候,不需要执行任何代码
}
2)双分支
if(表达式/条件){
为真的时候执行的代码
}else{
为假的时候执行的代码
}
3)多分支
if(表达式/条件){
为真的时候执行的代码
}else if(表达式/条件){
为真的时候执行的代码
}else{
为假的时候执行的代码
}
<script>
// 成绩评价
if(num>=90 && num<=100){
console.log('优秀');
}else if(num>=80 && num<90){
console.log('良好');
}else if(num>=60 && num<80){
console.log('中等');
}else if(num<60 && num>=0){
console.log('差');
}else{
console.log('成绩有误!');
}
</script>
4)分支嵌套
<script>
// 案例:判断平年和闰年
// 闰年: 普通闰年 ,世纪闰年
// 普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
// 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
var year = parseInt(prompt('请输入年份'));
if(year >= 0){
if(year%4==0 && year%100!=0 || year%400==0){
console.log('闰年');
}else{
console.log('平年');
}
}else{
console.log('年份不正确');
}
</script>
7、switch
switch(值){
case 值1:
代码段;
break;
case 值2:
代码段;
break;
case 值3:
代码段;
break;
default:
代码段;
}
<script>
var num = parseInt(prompt('输入程序'));
switch(num){
case 1:
console.log('两只老虎');
break;
case 2:
console.log('ABCDEFG');
break;
case 3:
console.log('从前有个山...');
break;
case 4:
console.log('相声,小品,魔术,杂技');
break;
}
</script>
什么时候用if,什么时候用switch:
if:判断的条件是一个范围的时候;满足某个条件需要继续判断的时候;
switch:当判断的结果是某一个值的时候,可以用 switch
所有的 switch 都可以用 if 实现,但是并不是所有的 if 都能用 switch 实现;
8、循环
1、for 循环(固定次数的循环)
for(初始化变量;循环条件;更新循环变量){
代码块
}
基础语法结构
for(var i = 1;i<=10; i+=1){
console.log(i);
}
循环嵌套
for(var j=1;j<=5;j++){
for(var i=1;i<=5;i++){
document.write("<div>"+i+"</div>");
}
document.write('<br/>')
}
循环输出数组的值
var arr = ['张三','李四','王五','马六'];
var newList = ['','',''];
for(var i = 0;i<=3; i+=1){
document.write('<li>'+arr[i]+'</li>');
}
下方代码使用for循环1~100的数字,使其 i = 1~100;
每次循环都除以 2 其余数等于 1,说明是奇数;
奇数执行 if 中的代码;偶数执行 else 中的代码
<script>
for(var i=1;i<=100;i++){
if(i%2 == 1){
console.log(i + "这是奇数");
}else{
console.log(i + "这是偶数");
}
}
</script>
2、for-in 循环(专门解决对象的遍历问题)
for(定义的变量 in 循环的内容){
循环体
}
定义的变量:就是对象的键
<script>
var person = {
"name":"jack",
"age":18,
"love":['篮球','足球']
};
for(i in person){
console.log(person[i]);
}
var arr = ['河南','湖南','山东'];
// 也可遍历数组
// for(i in arr){
// console.log(arr[i]);
// }
</script>
输出结果:

3、while 循环(满足条件的循环)
语法:
while(循环条件){
循环体
}
<script>
//1. 循环输出1-5
var i = 1;
while(i<=5){
console.log(i);
i++;
}
</script>
4、do--while(执行的代码在前,条件在后;先执行一次代码,再看条件,不满足,不在执行)
do{
循环体
}while(循环条件)
<script>
var i=0;
do{
i++
console.log(i);
}while(i<5);
</script>
while 循环和 for 循环最大的区别就是:
while:满足条件执行循环
for:规定好了执行的次数
while 里面嵌套 for
for 里面嵌套 while
9、跳出循环
continue; 翻译为 (停顿后)继续
break; 翻译为 终止
<script>
var arr = [4,7,8,12,15,95,68,74,62,30,66,35];
for(var i=0;i<arr.length;i++){
if(arr[i]%5==0){
console.log(arr[i]);
continue; // 可以终止本次循环,下方的 123 不在输出;
// break; // 当条件允许,终止 for 循环
}
console.log(123);
}
</script>

浙公网安备 33010602011771号