1.算术运算符
常见的算术运算符:
- 加 +
- 减 -
- 乘 *
- 除 /
- 幂 ** 23 2的三次方 222 = 23
- 余数 % 7%3 7/3 = 2 ····1
2.赋值运算符
- 变量没有赋值时,变量的值是不会发生变化的。
- a = a + 1; 可以写成 a+=1;
- +=
- -=
- *=
- /=
- %=
例:
var a = 5;
a *= 2;
console.log(a); //10
var a = 5;
a %= 2;
console.log(a); //1
3.自增自减
- 自增自减是一元运算符的一种。
- 一元运算符:只能操作一个数值的运算符就叫做一元运算符。
自增: 自身的值上+1
- 变量++;
- ++变量;
自减: 自身的值上-1
- 变量–;
- –变量;
【共同点】最终结果都是一样的,自增都是+1,自减都是-1;
【区别】在参与运算时:
- ++在变量前面时,会
先改变
变量的值,用改变后的值去进行运算。- ++在变量的后面时,会用自身的值
先去运算
,运算完成后,再改变自身的值。
例:
var x = 10;
x++;
++x;
console.log(x); //12
var x = 10;
x++;
++x;
console.log(x++ + ++x); //26
var x = 10;
x--;
--x;
var y = x++ + 1;
var y = ++x + 1;
console.log(y); //11
var x = 10;
x--;
--x;
var y = x++ + 1;
var y = ++x + 1;
console.log(x++); //10
var x = 10;
x--;
--x;
var y = x++ + 1;
var y = ++x + 1;
console.log(x-- + --x + x + ++x); //35
4.比较运算符
比较运算符:用于比较两个值的大小关系,返回值是一个布尔值。
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
- == 相等
- === 严格相等
- != 不相等
- !== 严格不相等
字符串之间的比较:按照字典排序比较的。(实际上按照编码顺序来排序的。)小写的字母比大写的字母的顺序要高。
比较的步骤:
- 比较首字母的大小,首字母大的就大,首字母小的就小。
- 如果首字母相等,则比较下一个字符,直到字符串结束或者分出大小。
- 如果两个字符串的字符数相等,则两个字符串相等,如果未结束,还有字符的字符串比较大。
不同类型的比较:js会将其先转为数字,再比较大小。
【注意】字符串如果不能转数字,与其他的值比较都是false。
例:
console.log(4 !== "4"); //true
console.log("c">"ca"); //false
console.log("4"<100); //true
console.log("apple">"iphone") //false;
console.log("1">"12"); //false
console.log(undefined === null); //false
5.逻辑运算符
逻辑运算符: 一般用来做条件判断。
- ! 取反
- && 与
- 【运算规则】如果第一个运算子的布尔值为true,则返回第二个运算子的值。如果第一个运算子的布尔值为fasle,则直接返回第一个运算子的值。而且,不会执行第二个运算子。
- 如果两个都是true,返回true,只要有一个fasle,返回的就是false。
- || 或
- 【运算规则】 如果第一个运算子的布尔值为true,则返回第一个的值,而且不执行第二个运算子。如果第一个运算子的布尔值为false,则返回第二个的值。
- 如果两个都是false,返回false。只要有一个true,返回的就是true。
例:
console.log(true && false); //false
console.log(x); //10
console.log("true" || false); //true
6.三元运算符
三元运算符也叫做三目。
语法格式:
- 表达式1?表达式2:表达式3;
- 表达式1是一个条件,值为Boolean(布尔值)类型。
- 若表达式1的值为true,则执行表达式2的操作。
- 若表达式1的值为false,则执行表达式3的操作。
例:
var a = 5;
var b = 6;
console.log(a>b?a:b); //6
三元小案例(补0)
- 用户输入一个数字,如果数字小于10,则在前面补0,如果大于10,不需要补0;将结果输出到控制台。
var num = prompt("请输入一个数字!");
console.log(num < 10 ? "0" + num : num); //如果输入的数值小于10,输出的结果会在前面补0。大于10则直接输出。
7.选择分支
程序执行的三种结构:
- 顺序结构 从上往下执行
- 选择结构(分支结构)
- if
单分支
多分支
switch
- 循环
【选择结构】
- if后面的()千万不要忘了。
- if中的{}里面的代码如果只有一行,{}可以省略,但是不推荐这样写。
- if嵌套最好不要超过三层。
- 把执行概论大的放在前面。
if语句语法
- 单分支:
- if (条件表达式) {
条件表达式的结果为true时,执行的代码。
};
- 多分支:
- if (条件表达式1) {
条件表达式1的结果为true时,执行这里的代码。
} else if (条件表达式2) {
条件表达式2的结果为true时,执行这里的代码。
} else if (条件表达式3) {
条件表达式3的结果为true时,执行这里的代码。
}…
else {
上面所有表达式都不成立,则执行这里面的代码。
};【注意】 else if是可以省略的。 最后的else也是可以省略的,但不建议这样写。
例:
var a = 12;
if(a>10){
console.log("a的值比10大"); //a的值比10大
}
console.log("执行完成。"); //执行完成。
var age = 20;
if (age>28) {
console.log("在哪里上班啊,月薪多少,有对象吗");
}else if(age>18){
console.log("你成年了,可以去网吧了!"); //将执行这里的代码
}else{
console.log("从后门进来");
};
if语句嵌套
- if (表达式1) {
if (表达式2) {
这里的代码,表达式1成立,表达式2也成立。
};
};
案例:
/* 用户输入自己的汽油编号,输入加多少升,弹出总价。
92 6.2 20升 6.0
98 7.1 30升 6.8 */
var gaso = prompt("请输入您要加的汽油编号:92/98"); //用变量去接收用户输入的数据。
var litre = prompt("您要加多少升?");
var total = 0; //总价
//判断用户加的汽油编号
if (gaso == 92) {
if (litre > 20) {
total = litre * 6;
} else {
total = litre * 6.2;
}
alert("请缴费:" + total + "元!")
} else if (gaso == 98) {
if (litre > 30) {
total = litre * 6.8;
} else {
total = litre * 7.1;
}
alert("请缴费:" + total + "元!")
} else {
alert("您输入的有误,请重新输入!")
};
switch语句
- switch语句用于多分支的选择语句。可以与if…elseif 替换使用。
- 语法:
- switch(表达式){
case 常量1:
执行的语句;
break;
case 常量2:
执行的语句;
break;
…
default:
上面所有case选项都匹配不成功的时候,执行这里。
执行的语句;
break;
}【注意】
- switch语句,只能判断条件表达式的一个结果,而不能判断范围。
- case后面的常量与表达式的结果之间的关系,必须是完全相等,才成立。 (===)
- case常量与表达式的结果匹配成立后,会执行case后面的代码,直到遇到break或者整个switch语句结束。
- 一般情况下,不要省略default.
- 如果多个case后面的代码一样,可以简写。
例:
var grade = "A"; //90-100 //A 可以更成B、C、D。
switch (grade) {
case "A":
alert("90-100");
break;
case "B":
alert("80-90");
break;
case "C":
alert("60-80");
break;
case "D":
alert("不及格");
break;
default:
alert("分级有误,请仔细查看");
break;
};
案例练习
- 用户输入一个数,判断它是奇数还是偶数,将判断结果弹出!
var num = prompt("请输入一个数字!");
alert(num % 2 == 0 ? "这是一个偶数!" : "这是一个奇数!");
- 用户输入一个4位数,分别把这4位数输出到控制台。比如说:1234, 输出结果:1,2,3,4。
var a = 1234;
// 获取千位。
console.log(parseInt(a / 1000)); //1
// 获取百位
console.log(parseInt(a / 100) % 10); //2
// 获取十位
console.log(parseInt(a / 10) % 10); //3
// 获取个数
console.log(parseInt(a % 10)); //4
- 判断c的值
var a = 5, b = 7;
c = a++ + b++; //12
c = ++a + b++; //13
c = a++ + ++b + ++a; //5 + 8 + 7 = 20;
console.log(c); //26
- 求两个数的最大数。
var a = 17;
var b = 20;
if (a > b) {
console.log(a); //不执行
} else {
console.log(b); //20 //因为是b > a 所以输出结果是20。
};
- 判断一个年份是闰年还是平年? (能被4整除且不能被100整除,或者能被400整除。)
var year = 2021; //更改数值查看结果
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
alert(year + "年是一个闰年"); //不执行
} else {
alert(year + "年是一个平年"); //2021年是一个平年
};
- 根据BMI指数判断一个人的体型。(BMI = 体重/身高的平方。)
- 65公斤/1.70**2;
低于18.5 过轻,
18.5-25 正常,
25-28 有点重,
28-32 胖了,
32 严重。
//第一步,用户输入身高和体重。
var height = prompt("请输入您的身高");
var weight = prompt("请输入您的体重");
//第二步:计算BMI指数。
var bmi = weight / (height ** 2);
if (bmi < 18.5) {
alert("偏瘦!")
} else if (bmi < 25) {
alert("正常")
} else if (bmi < 28) {
alert("适当运动一下")
} else if (bmi < 32) {
alert("注意饮食")
} else {
alert("请减肥,已经影响你的身体健康了")
};
- 用户输入月份,弹出对应月份的天数。
var month = prompt("请输入月份");
month = Number(month);
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
alert("该月有31天!");
break;
case 2:
alert("该月有28天!");
break;
case 4:
case 6:
case 9:
case 11:
alert("该月有30天!");
break;
default:
alert("输入月份有误!")
break;
};
Day2