今日学习 流程控制中的运算符和语句
运算符
赋值运算符
对变量进行赋值的运算符 = 左边必须是一个容器, *=,/=,都一样
let num = 1
//num = num + 1
num += 1
console.log(num)
一元运算符
根据所需要的表达式的个数,分为 一元二元三元运算符
// + - 是一元运算符
//自增 ++ 让变量的值每次加1
let num = 1
++num //++在前 前置自增
num++ //后置自增
前置自增和后置自增在单独使用时是没有区别的。通常用于计数
如果参与运算:
1.前置自增 ++i 先自加
2.后置自增 i++ 先运算再自加
let i = 10
i++//这是单独使用和++i并无区别
console.log (i)
console.log(i++ + 1)
let num = 10 + 20 //二元运算符
let num = 10 + 20 + 30 //三元运算符
比较运算符
比较数值大小,是否相等
>= ,<=,==(判断值是否相等),===(判断类型和值是否都相等),!=
=== 全等,经常用
console.log(2=='2')
//存在隐式转换,将'2'转换为2,结果为true
console.log(2==='2')//false
console.log(NaN === NaN)
//NaN不等于任何包括自身
console.log (2 !== '2')//true
根据ascll码,字符串也可以进行比较,a的ascll码为97
逻辑运算符
且 或 非
解决多重的条件判断
小案例
<script>
let num = +prompt('输入一个数字')
alert((num % 4 === 0) && (num % 100 !== 0))
</script>
运算符优先级
语句
表达式是可以被求值的代码,写在赋值语句的右侧
num = 3 + 4
语句是可以被执行的代码,不一定有值
流程控制语句。
顺序结构,分支结构,循环结构
分支语句
选择性的执行代码
分支语句包含:if ,三元,switch
if语句
单分支
if(条件){
满足条件要执行的代码
}
if (true) {
console.log('输出语句')
}
if (3 > 5) {
console.log('还输出嘛')
}
// 所有的数字都为真,0除外
if (2) {
console.log('输出语句')
}
//除了空字符串,其他全为真
if ('mazaw') {
console.log('输出语句')
}
// 小案例
let num = prompt('输入成绩')
if (num > 700) {
console.log(`恭喜进入黑马`)
document.write(`恭喜进入黑马`)
} else {
console.log(`滚去学习`)
document.write(`滚去学习`)
}
双分支
if(条件){
满足条件要执行的代码
}else{
不满足条件要执行的代码
}
小案例
<script>
let UserName = prompt('输入用户名')
let UserPsd = +prompt('输入密码')
if (UserName === 'pink' && UserPsd === 123456) {
console.log('登录成功');
} else {
console.log('登录失败');
}
</script>
小案例
//判断闰年,润年的条件:能被4整除,但不能被100整除,或者被400整除的是闰年,否则是平年
let year = +prompt('输入想要判断的年份')
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
console.log('是闰年');
} else {
console.log('是平年');
}
小案例
let grend = +prompt('输入你的成绩')
if (grend > 90) {
console.log('牛逼')
} else if (grend > 70) {
console.log('还可以')
} else if (grend > 60) {
console.log('不错')
} else {
console.log('真拉')
}
三元运算符
比if双分支更简单的写法
? : 结合使用
语法:
条件 ? 满足条件执行 : 不满足条件执行
一般用来取值
console.log(3 > 5 ? '真' : '假');//假
小案例
//用户输入两个数的值,比较两个值的大小并输出大的
let num = prompt('请输入第一个数')
let num1 = prompt('请输入第二个数')
console.log(num > num1 ? num : num1);
小案例
//数字补0案例
//用户输入一个数,如果数字小于0 则在前面补0 比如09,03等
let num = prompt('请输入整数')
let bu = num <= 9 ? '0' + num : num
console.log(bu);
switch分支语句
找到跟小括号内=== 全等的case值,并执行相应代码,若没有全等,则会执行default 的代码。
一般用于等值判断,不做区间判断
switch (key) {
case value1:
代码1
break;
case value2:
代码2
break;
case value3:
代码3
break;
case value4:
代码4
break;
default:
break;
}
//用户输入两个数字,然后输入 + - * / 任何一个可以计算结果
let num = +prompt('请输入第一个数字')
let num1 = +prompt('请输入第二个数字')
let num3 = prompt('请输入+ - * / 中的其中一个')
switch (num3) {
case '+':
console.log(num + num1);
break;
case '-':
console.log(num - num1);
break;
case '*':
console.log(num * num1);
break;
case '/':
console.log(num / num1);
break;
default:
break;
}
循环语句
一段代码的重复执行
while循环
在满足条件期间,一直循环
循环条件为真,执行循环体,再次判断条件为真则继续执行,为假则跳出
while (循环条件) {
循环体
}
while循环的三要素:
1.变量起始值
2.终止条件(没有终止条件会一直执行)
3.变量变化量(用于自增或自减)
let i = 1
while (i <= 5) {
document.writeln('循环5次')
i++
}
小案例
//求1加到100
let sum = 0
let i = 1
while (i < 101) {
sum = sum + i
i++
}
document.write(sum)
小案例
//计算1-100之间的所有偶数和
let sum = 0
let i = 1
while (i < 101) {
if (i % 2 === 0) {
sum = sum + i
}
i++
}
document.write(sum)
循环的退出
break:退出循环
let i = 1
while (i < 5) {
if (i === 4) {
break //打印完第三个后退出整个循环
}
console.log(`这是第${i}个`);
i++
}
continue:结束本次循环,开始下次循环
小案例
//页面弹出对话框 ‘你爱我吗’,输入‘爱’结束,否则一直执行
while (true) {
let ans = prompt('你爱我吗?')
if (ans === '爱') {
break
}
}
综合案例
<script>
let count = 0
while (true) {
let num = +prompt(` 您目前的余额是${count}缘
请选择你的操作
1.存钱
2.取钱
3.查看余额
4.退出`)
if (num === 4) {
break
} else {
switch (num) {
case 1:
let cun = +prompt('请输入你需要存多少')
count = count + cun
alert(`您的余额是${count}`)
break
case 2:
let qu = +prompt('请输入你需要取多少')
count = count - qu
alert(`您的余额是${count}`)
break
case 3:
alert(`您的余额是${count}`)
break
case 4:
break
default:
break;
}
}
}
</script>
第二天补缺
8.16补缺(js视频第二天)
复习:数字,变量名,ull,true,false 不需要加引号
字面量。看到就会知道是什么类型
一般情况null用于性能优化,清空变量内存空间
- * / 会进行隐式转换
运算符:
赋值运算符= 左边必须是变量,右边为值
const声明的常量不可以修改,可以用不可以再进行赋值和修改
+= -= *= /= %=
i= i+ 1 简写为 i+=1
有几个操作数就是几元运算符
前置++ 和后置++ 在单独运算的时候是没有区别的
i存在一个值,i++和++i都会分别会存在一个值
前置++ 先自增,再运算
后置++ 先运算,再自增
比较运算符
!= 比较值不相等
!== 值不相等,数据类型不相等,有一个不相等就是true
字符串比较的是ascll码值
❤
js 有五种在转换为布尔值的时候为false:
0 NaN null undefined ''(空)
空格转换为布尔值为true
unll 和 underfined
console.log不是表达式;有值的就是表达式
//三元表达式 比较条件?为真时候的值:为假时候的值
let bijiao = 3 > 5 ? 2 : 4
alert(bijiao)
对与死循环:
for (; ;) { }
while (true) { }