目录
一、运算符
运算符是用于执行各种操作的符号。通过使用运算符,我们可以进行算术运算、逻辑运算、赋值操作等。
1.算术运算符
语法:
1.加:+
2.减:-
3.乘:*
4.除:/
5.取余:%
-
取余符号开发中常用 判断是否能够整除
口诀:先乘除取余、后加减 ,有括号计算括号里面的
2.赋值运算符
语法:要赋值的 = 值
-
右边赋值给左边
知识补充:组合赋值运算符(常用)
语法: += 、 -+ 、*= 、/= 、%=
执行顺序是先进行算术运算再进行赋值
例如: a += b
a先加b然后把(a+b)值赋给a, 同理一样 相当于 a=a+b
3.一元运算符(自增自减运算符)
语法:++ --
-
++ 每执行一次则加一,反之 -- 每执行一次减一
知识补充:前后关系 i++ 和 ++i 如果单独使用,则没有区别 若搭配赋值使用则有区别
--i和i--同理
//前后区别 let ss = 1 let q = ss++ 加在后,则先赋值再加 console.log(q) //q=1 console.log(ss) //ss=2 let ss = 1 let q = ++ss 加在前,则先加后赋值 console.log(q) //q=2 console.log(ss) //ss=2 实质上不单单是赋值,而是参与运算操作 let i=1 console.log(i++ + ++i + i) //1 + 2 + 1 + 3 = 7 //第三个加一是i++的后加 --亦然
4.比较运算符
语法:
1.大于:>
2.小于:<
3.大于等于:>=
4.小于等于:<=
5.等于(值相等即可):==
6.全等于(值和类型都要相等):===
7.不等:!==
温馨提示:
-
比较运算符返回的结果只有true和false
-
开发中判断是否相等,尽量用===
console.log('2' == 2) //true
console.log('2' === 2) //false
5.逻辑运算符
语法:
1.非:!
2.&&:且
3.||:或
温馨提示:优先级由上往下
6.三元运算符(三元表达式)
语法:条件判断表达式 ? t执行 :f执行
-
整个三元运算符的结果就是三元运算符的执行结果
let c = 3 > 2 ? '大于' : '小于'
console.log(c)
7.运算符的优先级
let a = 3>5 && 2<7 && 3==4 || 3!=2
console.log(a)
二、流程控制语句
表达式:一个表达性的代码 语句:一段执行的程序
-
分支语句
-
循环语句
1.if分支语句
单分支语法: if(条件判断表达式){ 分支体 }
双分支语法: if(条件判断表达式){ 分支体1 }else{ 分支体2 }
多分支语法: if(条件判断表达式){ 分支体1 }else if(条件判断表达式){ 分支体2 }········{ }else{ 分支体n }
else代表上面都不执行,则执行它。相当于最后的倔强
温馨提示:使用多分支语句的时候,程序是右上往下执行,因此可以简化某些条件表达式的判断逻辑
案例练习
根据不同的成绩,反馈不同的评价
//80以上优秀
//60以上及格
//60以下不及格
let score = +prompt('请输入成绩')
if(score > 80){
console.log('优秀')
}else if(score > 60){
console.log('及格')
}else{
console.log('不及格')
}
//此处优化了判断逻辑
2.switch分支语句
语法:
switch(要进行判断的值){
case 设定值1 :
分支体1
break
case 设定值2 :
分支体2
break
case 设定值3 :
分支体3
break
··········
default :
分支体n
}
default代表上面都不执行,则执行它。相当于最后的倔强
温馨提示:每个case一定要加break不然会出现穿透现象
知识补充:穿透现象
当满足某个case后,执行里面的分支体,执行完后,程序会找分支体的break,如果找不到,它不会结束switch语句,而是继续往下执行case,直到找到break为止
所以:switch语句执行完case的分支体后不会自动结束语句,需要break来结束,因此break的作用是结束switch语句
案例练习
输入数字和符号自动运算
// 用户输入任意一个数学运算符
// 按照用户输入的数学运算符进行运算
let num1 = 10
let num2 = 20
let operator = prompt('请输入运算符')
switch(operator){
case '+' :
console.log(`你的符号对应的运算结果是${num1 + num2}`)
break
case '-' :
console.log(`你的符号对应的运算结果是${num1 - num2}`)
break
case '*' :
console.log(`你的符号对应的运算结果是${num1 * num2}`)
break
case '/' :
console.log(`你的符号对应的运算结果是${num1 / num2}`)
break
default :
console.log('运算符不规范')
break
}
3.for循环语句
语法: for( 声明循环控制变量; 条件判断 ; 流程控制 ){ 循环体 }
for(let i = 0; i < 10; i++){
console.log('老婆我搓了')
}
4.while循环语句
语法:
声明一个循环控制变量i
while(条件判断){ 循环体 流程控制 }
温馨提示:流程控制可以在{}里面的任意位置,看情况定
案例练习
累加计算
//计算从1加到100
let count = 0
let i = 1
while(i <= 100){
count += i
i++
}
console.log(count)
5.do....while语句(用的少)
语法:
声明控制变量i
do{ 循环体
}while(条件判断)
do...while和while以及for循环最大的区别就是提前执行一次循环体再判断
//先做一次再循环
let pp = 10
do{
pp++
}while(pp > 10)
console.log(pp)
6.continue和break
continue是跳过本'次'循环
break是结束这个'循环语句'
- 也可以是结束switch分支语句
for(let i = 0; i < 5; i++){
console.log(i)
}
//0 1 2 3 4
for(let i = 0; i < 5; i++){
console.log(i)
break
}
//0
for(let i = 0; i < 5; i++){
if(i == 2){
continue
}
console.log(i)
}
//0 1 3 4
7.for和while的区别
区别就在于循环控制变量一个是全局一个是局部 以及格式
当循环次数明确用for,不明确用while
三、语句嵌套
循环套循环
循环套分支
分支套分支
分支套循环
1.案例练习1
定制计划
第一天、第二天、第三天背几个单词
for(let i = 0 ; i < 3 ; i++ ){
for(let j = 0; i<5; i++){
console.log(`第${i}天` <br> `背${j}个单词`)
}
}
2.案例练习2
打印一个三角图形
for(let i = 0 ; i < 5 ; i++){
for ( let j = 0 ; j<=i ; j++){
console.log('@' )
}
console.log(``<br>``)
}
3.案例练习3
打印99乘法表
for(let i = 1 ; i <= 9 ; i++ ){
for(let j = 1 ; j <= i ; j++){
console.log(`${i} X ${j}`)
}
console.log(``<br>``)
}
四、debug断点调试
学会使用断点调试去判断代码哪里出问题
先断点,后运行进行调试
断点的意思就是当程序运行到这里的时候暂停下来
调试,是让我们自己控制下一步的执行