首先要注意的是程序里面不同的等号数量代表着不同的意思
= 代表赋值,就是把右边的赋给左边的
== 代表相等(不要求数据类型也一样)例如 consloe.log(18 == '18')//true 里面存在隐式转换
=== 代表全等,即数值及其数据类型也一致(存放的地址也一致)
逻辑运算符(优先级&&>||)
- 短路运算
- 原理:当有多个表达式(值)时,左边的值可以确定结果时,就不再继续运算右边的值
- && 逻辑与短路运算:如果表达式1为真,则返回表达式2,若表达式1为假,则返回表达式1 例如 console.log(123&&456) //456 console.log(0&&123)//0
- || 逻辑或短路运算:如果表达式1为真,则返回表达式1,若表达式1为假,则返回表达式2
需要注意的是,被短路的表达式不参与运算,例如:
var num = 0;
console.log(123 || num++);
console.log(num);
按理来说,num++应该会变换数值值,但是他被短路了,就不参加运算了,所以结果还是0.
流程控制
流程控制可以分为顺序结构,分支结构,循环结构。
我们重点看流程结构
一、分支结构是什么?
上图:
分支结构主要进行判断主要成员有(if else if和switch case以及三元运算符)(都是实现多选1)
语法结构 if(表达式){
//
}else if(表达式){
}
表达式成立之后会执行大括号里面的代码
语法结构 switch(){
case value1:
执行语句;
break;
case value2:
执行语句;
break;
defult:都不符合条件执行的语句
}
三目运算符 条件表达式?表达式1:表达式2;
条件表达式为真,返回表达式1,为假返回表达式2;
switch case语句通常处理确定的情况
if else if 通常处理判断,更加灵活
二、for循环
1.格式
for(初始化变量;条件表达式;操作表达式){
//循环体}
例如:for(var i=0;i<=100;i++){循环体}
小例子:1,计算1到100的总和
var sum = 0;
for (i = 0; i <= 100; i++) {
sum += i;
}
console.log(sum);
2 计算1到100内所有奇数的和
var sum = 0;
for (i = 0; i <= 100; i++) {
if (i % 2 != 0) {
sum += i;
}
}
console.log(sum);
实现判断与循环的综合使用
3 计算班级平局分(不同班级有不同学生个数,不同学生有不同分数)
/ var num = prompt('请输入学生个数:');
// var sum = 0;
// var average = 0;
// for (var i = 1; i <= num; i++) {
// var score = prompt('请输入第' + i + '个数:');
// sum = sum + parseFloat(score); 要注意从prompt得到的值是字符串型,所以要转换
// };
// average = sum / num;
// alert(average);