补充算术操作符
++ 自增运算符
语法:
数据++;
++数据;
var a = 10;
a++; // 或者 ++a;
console.log(a); //11 相当于 a = a + 1的结果,实现数据自增1
相同点:
这两种写法,本身的计算结果是一样
不同点:
在运算中
数据++ 先拿数据原本的值进行计算,计算完后,再自增
++数据 先自增,自增的结果来参与计算
– 自减运算符
数据--;
--数据
赋值操作符
赋值运算符 =
执行过程:
先执行 = 右边的代码,得到结果,再给 = 的左边
var num = 30;
// num = num + 20;
// 简写方式
num += 20;
console.log(num); // 50
逻辑操作符
逻辑运算符的主要作用是连接多个条件,我们要掌握的比较运算符有
&& || !
&&
用在需要多个条件同时成立的时候
// 用户在登录的时候要用户名和密码同时正确才能登录
var userName = prompt('请输入用户名');
var password = prompt('请输出密码');
console.log(userName === 'admin' && password === '123456');
// 只有 && 两边的 结果都是 true ,最终结果才是 true
||
用在只需要任意条件成立的时候
// 只要年龄小5岁或者身高小于120cm就可以免费乘坐
var age = parseInt(prompt('请输入你的年龄'));
var height = parseFloat(prompt('请输入你的身高'));
console.log(age < 5 || height < 120);
// 只要 || 两边的结果有一个是true,最终结果就是true
!
用于颠倒是非的时候
var res = true;
console.log(!res);
// 这里暂时用不到,在后面做具体效果的时候都用,那个时候我们再学习具体的使用
操作符的优先级
观察代码
var res = 5 + 2 * 3;
console.log(res); // 11
在上述代码中,执行过程是先计算 2*3
再和 5 相加的。在js中的操作符很多,我们要认识到它们之间是有计算的优先顺序的,这个优先顺序我们称为优先级
记忆一下面的计算优先级
1. 第一优先级: [] . ()
2. 第二优先级: ++ -- !
3. 第三优先级: * / %
4. 第四优先级: + -
5. 第五优先级: > >= < <=
6. 第六优先级: == != === !==
7. 第七优先级: &&
8. 第八优先级: ||
9. 第九优先级: = += -= *= /= %=
上面是具体的优先级,但是平时我们不会把很多的操作符放在一起运算,所以我们大致记住
- 括号先算
- 其次算算术
- 再次算比较
- 然后算逻辑
- 最后算赋值
多使用!规则就记住了~
流程控制
js里面的代码是有执行顺序的,通过一些特殊的方式控制那些代码如何执行 —— 流程控制
顺序结构
按照从上到下的顺序,一行不漏的执行
分支结构
在逻辑上有多个分支,只会选择一个分支执行
循环结构
重复的代码,可以使用循环的方式实现多次
表达式
可以得到一个结果的代码 ,比如:
// 下面都可以称为表达式
12; // 结果是12
a++; // 结果是 11
5 > 6; // 结果是 false
// ...
语句
语句可以理解为一个行为,一般在行为和行为之间,都会使用 ;
隔开
console.log(12); // 行为就是输出了一个12在控制台
alert('helloworld'); // 行为就是弹出了个提示框
var a = 10;
简而言之:一个程序
可以由多个语句
组成,一个语句
可以由多个表达式
组成
分支结构
从多个分支里面选择一个 —— 作用 : 判断
判断一下一个人的性别,如果是男的,让他上男厕
if结构
只有一个条件的判断
if( 条件表达式 ){
条件表达式的结果是true的时候要执行的代码
}
var gender = prompt('请问您的性别是男的吗');
if( gender === '男' ){
alert('男厕所在二楼的最东边,请去吧');
}
两个条件的判断
if( 条件表达式 ){
条件表达式的结果是true的时候要执行的代码
}else {
条件表达式的结果是false的时候要执行的代码
}
var gender = prompt('请告诉我你的性别');
if(gender === '男'){
alert('男厕所在二楼的最东边,请去吧');
}else {
alert('女厕所在3楼的西边');
}
多个条件的判断
if( 条件表达式1 ){
条件表达式1的结果是true的时候要执行的代码
}else if(条件表达式2){
条件表达式2的结果是true的时候要执行的代码
}else if(){
}
// 如果还有更多的判断,继续写 else if ()
else {
以上的条件都不为true,就会执行这里的代码
}
var gender = prompt('请告诉我您的性别');
// 男的上二楼
if(gender === '男'){
alert('上3楼');
}else if(gender === '女'){
// 如果是性别为女,上2楼
alert('上2楼');
}else if(gender === '人妖'){
alert('gun粗');
} else {
alert('我没听清');
}
switch结构
在js里面如果是比较固定值,推荐使用swtich-case结构
语法:
switch (变量){
case 要比较的固定的值1:
变量和 固定的值1 === 的时候要执行的代码
break;
case 要比较的固定的值2:
变量和 固定的值2 === 的时候要执行的代码
break;
case 要比较的固定的值3:
变量和 固定的值3 === 的时候要执行的代码
break;
default:
当以上所有的条件都不成立的时候,代码在这里执行
break;
}
举例
switch (gender) {
case '男':
alert('去3楼');
break;
case '女':
alert('去2楼');
break;
case '人妖':
alert('滚');
break;
default:
alert('我没听清');
break;
}
注意点!
1.default不是必须的
2.break的作用是结束判断,如果不想要,也可以不写
3.变量和固定值的比较是 === 严格等于
三元表达式 ? :
三元表达式的使用是简写if-else结构 只能用于if-else
语法
表达式1 ? 表达式2 : 表达式3
// 如果表达式1 成立, 那么就执行表达式2
// 如果表达式1 不成立, 那么就执行表达式3
//例如: 求二个数字中谁更大
var a = 10; var b = 20;
var max = a > b ? a : b;
console.log(max);
总结
if结构,多用于判断区间、不定值判断
switch-case 只能用于定值判断
循环结构
在js中,如果我们要连续输出同样的一句话多次,会比较麻烦
//输出 xxx,不愧是你!! 6 次
console.log('不愧是我!!');
console.log('不愧是我!!');
console.log('不愧是我!!');
console.log('不愧是我!!');
console.log('不愧是我!!');
console.log('不愧是我!!');
同样的代码我们写了6次,这样是不好的,重复多次时,我们使用循环结构结构
for循环
固定用法
for(初始化表达式 ; 条件表达式 ; 递增或者递减表达式){
循环体(需要重复执行的代码)
}
for(var count = 0;count < 6; count++){
console.log('javascript天下无敌!!!');
}
执行过程
1.先执行初始化表达式
2.判断条件是否成立
3.如果成立,执行循环体
4.执行递增表达式
重复2~4,直到第2步的条件为false,就结束循环
试着做一下
求1~10之间的所有整数和
嵌套for循环
for循环套for循环
for(var i=1; i<=3; i++){
for(var k=1; k<=5; k++){
console.log("i的值:"+i, "k的值"+k);
}
}
while循环
固定语法
while( 条件表达式 ){
当表达式的结果是true的时候,这里面的代码会重复的执行,直到条件为false
循环体(需要重复执行的代码)
}
while(count < 10){
console.log('你真厉害!!');
}
执行过程:
1.先判断条件是否成立
2.如果成立,会执行循环体
3.当循环体执行完毕,会再次判断条件
重复1~3多次,直到条件为false为止
do-while循环
固定写法
do {
循环体(需要重复执行的代码)
}while (条件)
执行过程
1.先执行循环体1次
2.判断条件
3.如果是true,就执行循环体
4.重复2~3多次,直到条件是false
总结
- while、do-while 循环不易看出循环的次数,一般用于未知次数的循环
- for循环明显看出循环的次数,一般用于已知次数的循环
- while、for循环可能一次循环都不执行, do-while循环至少执行一次
希望对你有所帮助~努力学习!提升自己加油!!