7.30笔记(三目运算符,条件语句,循环语句,break,continue)
三目(三元)运算符
条件?'表达式1':“表达式2”
问号和冒号是关键,问号前面的是条件,永远先找的都是条件
var num=3;
num>2?console.log(23):console.log(34);
//如果num>2成立,则执行第一个表达式;如果不成立,则执行第二个表达式
var b= num>8?"hello":"world";
//先判断num>8是否成立,成立执行"hello",不成立执行"world",赋值给b
console.log(b) // world
运算符优先级
优先级 运算符
1 小括号()
2 ++ -- !
3 算数运算符 先* / % 后加减
4 > >= < <=
5 == != ===
6 先&& 后||
7 =
var r1 = 1||2 && 3 // 1
var r1 = (1||2) && 3 // 3
关于分号(最好养成加分号的习惯)
-
分号代表一条语句的结束
-
分号可以省略(一条语句只占一行的时候可以省略);多个语句在一行要用分号隔开
-
花括号后面不需要分号
流程控制语句
一、条件语句
主要是if语句
单分支
语法:
if(条件){
js代码
}
var num = 1;
num ++; //num = 2
if(num>3){
console.log(num)
} // 不符合条件,不执行
console.log("hello"); // 输出hello
----------------------------
var num = 1;
num ++; //num = 2
if(num<3){
console.log(num)
} // 符合条件,执行
console.log("hello"); //最后有两个输出 2 hello
双分支
语法:
if(条件){
js代码
}else{
js代码
}
var num = 1;
num ++; //num = 2
if(num>3){
console.log(num)
}else{
console.log(0)
}
多分支
语法:
if(条件){
js代码
}else if{
js代码
}else{
js代码
}
var score =78;
if(score>80 && score<=100){
console.log('优秀')
}else if(score>70 && score <=80){
console.log('良')
}else if(score>60 && score <=70){
console.log('合格')
}else{
console.log('不合格')
}
// 注意条件的写法
switch语句
这个表达式值可能是不同的值,不同值对应不同的操作
var j=2;
switch(表达式){
case 值1:
js代码
break;
case 值2:
js代码
break;
case 值3:
js代码
break;
default:
js代码
//这里不需要break。前面需要break是因为如果不打破,会继续执行下去,最后一个就不需要了。
}
var j=2;
// 在下面的条件里寻找符合j=2的值,然后执行操作
switch(j){
case 1:
console.log('电饭锅');
break;
case 2:
console.log('钢笔');
break;
case 1:
console.log('纸巾');
break;
default:
console.log('其他');
} // 输出钢笔
var age = parseInt(prompt("请输入年龄"));
//console.log(age) 点击取消时,这里输出的是NaN
if(age<18){
alert('您还没有成年')
}else if(age>=18 && age<78){
alert('您已成年')
}else{
alert('超出范围')
}
var password=prompt('请设置您的密码'); //prompt得到的都是字符串
if(password.length !=6){
alert('请输入六位数字密码')
}else{
if(isNaN(password) == true){ //isNaN会对字符串做隐形转换再进行判定
alert('密码必须是数字')
}else{
alert('密码设置正确')
}
}
new Date() 获取当前时间对象 getDay() 获取今天是星期几
var week = new Date().getDay();
console.log(week)
var weekStr="";
switch(week){
case 0:
weekStr ="日";
break;
case 1:
weekStr ="一";
break;
case 2:
weekStr ="二";
break;
case 3:
weekStr ="三";
break;
case 4:
weekStr ="四";
break;
case 5:
weekStr ="五";
break;
default:
weekStr ="六";
}
document.write("今天是星期"+weekStr)
document.write() 在页面上写入信息
注意:
- 开发中,表达式要写成变量
- num的值和case里面的值相匹配时是全等(值和类型都相等)
- 如果当前的case中没有break,就不会退出switch,继续执行下一个case
if语句和switch语句的区别
if语句的值是一个范围区间,switch语句的值是一个固定的值
二、循环语句
while循环
重复执行相同的代码多少次
初始化变量 //初始化变量在整个循环中只执行一次
while(条件表达式){
//循环体---重复执行的代码
//更新操作---更新初始化变量,递增或递减(没有这一步会变成死循环)
}
//条件表达式——用于确定每一次循环是否能被执行:如果结果是true就继续循环,否则就退出循环
初始化变量 --- 初始化一个计数器,使用var关键字声明的变量,变量帮我们记录次数
var i=1;
while(i<=100){
console.log("hello 大家好");
i++
}
console.log('循环执行完毕')
while循环可以重复执行不同的代码,使用计数器变量 i ;i 每次循环值都会变化
//输入年龄1~100岁
var age=prompt("请输入年龄");
var i =1;
while(i<=age){
console.log("某人今年的年龄是"+i+"岁");
i++
}
var i=1;
while(i<=age){
if(i==1){
console.log('某人今年的年龄是'+i+'岁,他出生了');
}else if(i>=100){
console.log('某人今年的年龄是'+i+'岁,他去世了');
}else{
console.log('某人今年的年龄是'+i+'岁');
}
i++
}
//输出1~100之间的所有奇数
var i=1;
while(i<=100){
if(i%2 !=0){
console.log(i);
}
i++
}
do while 语句
初始化变量
do{
//循环体
//更新操作
}while(条件表达式)
var i=1;
do{
console.log("hello 大家好");
i++;
}while(i<=100)
while和do while的区别
- 语法上,他们的执行顺序不一样:while先执行条件后执行循环体,do while先执行循环体再执行条件
- 条件不成立(为假)时:do while至少执行一次,while一次都不执行
for语句
和while语句的执行顺序实际上是一样的
for(初始化变量,条件表达式;更新操作){
//循环体
}
//输出100次hello world
for (var i=1;i<=100;i++){
console.log('hello world')
}
//输出1~100之间的所有数
for(var i=1;i<=100;i++){
console.log(i)
}
//输出1~100之间的所有奇数
for(var i=1;i<=100;i++){
if(i%2 !=0){
console.log(i)
}
}
或
for(var i=1;i<=100;i+=2){
console.log(i)
}
break和continue
break和continue只能应用在循环中(但是break还可以使用在switch结构中)
- break 立即终止循环,并跳出循环,循环结束
- continue 停止当前循环,继续执行下一次循环
for(i=1;i<=100;i++){
if(i==20){
break //直接跳出
}
console.log(i);
}
//输出1~19
for(i=1;i<=100;i++){
if(i==20){
coutinue //停止第20次循环 继续21次
}
console.log(i);
}
//输出1-19,21-100
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理