JavaScript的基本语句和表达式
语句与表达式
简单概括: 有运算符参与的就是表达式,没有运算符参与的就是语句
-
表达式 : 由运算符组成的式子, 一定会有运算结果 (运算)
-
语句 : 让js编译器执行某个命令,做什么事情 (执行)
if单分支结构
- if 结构语法:
if(条件 true/false){ 条件成立时需要执行的代码 }
- if 结构补充
- 大括号中可以是任何代码,不限数量
- 如果大括号中代码有且只有一行,则可以省略大括号
- 注意点:小括号中的条件可以是哪些呢
- 关系表达式:结果一定是布尔类型
- 布尔类型的值:true和false
- 其他表达式和值:都会先转换成布尔类型再判断真和假
- 分支结构 : 代码根据条件来执行
语法
if(条件 true/false){
满足条件需要执行的代码
}
- 注意点:
小括号里面的条件可以写哪些代码
(1)比较表达式 : 比较表达式结果一定是布尔类型
(2)直接写布尔类型的值
(3)写其他的值 : 编译器会自动转成布尔类型来判断是否成立
if分支式例:
let score = 59
console.log('1-我今天上学了')
console.log('2-我今天考试了')
console.log('3-我回家了')
if( score < 60 ){
console.log('4-爸爸打我了')
}
console.log('5-我回房间睡觉了')
if( 1 ){//Boolean(1) = true
console.log('满足条件,成立')
}
if-else双分支结构
语法:
if(条件){
条件成立时需要执行的代码
}else{
条件不成立时需要执行的代码
}
if-esle结构语法:用于两种互斥的条件判断
例如:如果(if)我的钱超过100块就网吧(也就是说钱>=100),否则(else)不去(也就是说钱<100)
if-else结构注意点
-
if大括号中的代码与else大括号的代码只会执行一个,不会同时执行**
-
if-else语句的作用主要就是为了提高代码的运行效率,虽然可以用两个if语句来代替if-else语句,但是两个if语句需要判断两次,而if-else只需要判断一次**
if-else双分支
语法:
if(条件true/false){
条件成立时需要执行的代码
}else{
条件不成立时需要执行的代码
}
注意点:
双分支语句是两个互斥条件(两个条件一定会满足一个,不会同时满足,也不会同时不满足)
if大括号代码 和 else大括号代码 一定会执行一个,不会同时执行,也不会同时不执行
双分支式例:
let score = 89
console.log('1-我今天上学了')
console.log('2-我今天考试了')
console.log('3-我回家了')
if(score < 60 ){
console.log('4-爸爸打我了')
}else{
console.log('4-爸爸给我买奥迪')
}
console.log('5-我回房间睡觉了')
/* 互斥条件:两个条件一定会满足一个,不会同时满足,也不会同时不满足 */
if(1){
console.log('世界上最遥远的距离不是生与死距离,而是我在if里,你在else里。看起来隔得那么近,却永远也无法一起执行');
}else{
console.log('我爱你');
}
if-else if-else多分支结构
语法:
if(条件1){
条件1成立时需要执行的代码
}else if(条件2){
条件2成立时需要执行的代码
}else if(条件3){
条件3成立时需要执行的代码
}else{
以上所有条件都不成立时需要执行的代码
}
注意点:
-
if-else if -else结构中必须以if开头,中间的else if可以是多个,末尾的esle可以省略(一般都不会省略)
-
if-else if-else语句中所有的大括号中的代码只会执行其中一个,不会执行多个
if分支语句
单个条件: if单分支
两个条件: if-else双分支
多个条件: if - else if - else 多分支
if(条件1){
条件1成立时需要执行的代码
}else if(条件2){
条件2成立时需要执行的代码
}else if(条件3){
条件2成立时需要执行的代码
}
.....
else{
如果前面所有条件都不满足,则执行else代码
}
注意点
(1)多分支所有的大括号代码最多只会执行一个,只有当前面的条件不满足,才会进入后面的条件判断
(2)多分支一定要以if开头,后面else if可以多个,结尾else可以省略
多分支结构式例:
let score = 58
console.log('1-我今天上学了')
console.log('2-我今天考试了')
console.log('3-我回家了')
if (score >= 90) {
console.log('4-爸爸给你买布加迪')
} else if (score >= 80) {//隐藏条件score < 90
console.log('4-爸爸给你买兰博基尼')
} else if (score >= 60) {//隐藏条件score<80
console.log('4-爸爸给你买特斯拉')
}else{//隐藏条件 score<60
console.log('4-爸爸打我一顿')
}
console.log('5-我回房间睡觉了')
三元表达式
运算符根据参与运算的值数量分为一元、二元、三元运算符
- 一元运算符:只能运算一个数
++ – !
二元运算符:能运算两个数
算术、比较
三元运算符: 能运算三个数
? :
A ? B : C
-
三元表达式: 表达式 ? 代码1 : 代码2
执行规则: 如果表达式为true,则执行代码1,否则执行代码2 -
三元表达式功能和if-else语句类似
- 如果你的代码只有1行,则可以用三元
- 三元表达式有运算结果
如果代码1 和 代码2 不能产生结果,则三元表达式的结果是 undefined
let res = 1>0 ? alert('哈哈') : alert('呵呵')
console.log( res )// undefined
如果代码1 和 代码2 有结果,则三元表达式的结果就是他们的结果
let res1 = true ? 10 : 20
console.log( res1 )
switch-case分支结构
语法:
switch(表达式){
case 值1:
表达式的结果 === 值1,需要执行的代码
break;
case 值2:
表达式的结果 === 值2,需要执行的代码
break;
case 值3:
表达式的结果 === 值3,需要执行的代码
break;
.......
default:
表达式的结果和上面所有的case后面的值都不全等,则会执行这里的代码
break;
}
注意事项:
-
表达式的结果要和值一定是全等的关系===
-
break作用:结束该switch语句,所以一般情况下要加上,如果不加上则会发生穿透
- 穿透:从上一个case代码快执行到下一个case代码快
- break关键字的作用就是防止穿透
-
default语句可以写在任何地方,也可以省略,但是一般写在最后,这是一种代码规范
循环语句
while循环语法
while( 条件 true/false ){
循环体:需要重复执行的代码
}
执行规则
1.判断条件是否成立
1.1 true : 则执行循环体代码
1.2 false : 循环结束,执行大括号后面的代码
2.重复步骤1
1.声明变量记录循环次数(循环变量)
let num = 1
2.循环条件
while (num <= 10) {
console.log("我爱你们")
3.循环变量自增
num++
}
console.log("搞定!")
for循环
for循环: 1.声明循环变量 2.循环条件 3.循环变量自增 写在一个小括号中,代码更加简洁易读
语法:
for(语句1;语句2;语句3){
循环体:需要重复执行的代码
}
执行规则
1. 执行语句1(声明循环变量)
2. 判断语句2结果是否成立(循环条件)
2.1 true : 执行循环体
2.1.1 执行语句3(循环变量自增)
2.2 false: 循环结束,执行大括号后面的代码
3. 重复步骤2
for(let i = 1; i <= 3;i++){
console.log('我爱你们')
}
console.log('搞定')
break与continue关键字
continue : 结束本次循环体,立即进入下一次循环判断
continue关键字只能用于循环语句
break: 结束整个循环语句,立即执行大括号后面的代码
break关键字可以用于 循环语句 + switch-case
模拟吃10个包子
for (let i = 1; i <= 10; i++) {
continue : 吃到第五个包子,发现太咸。 第五个包子不吃,但是没吃饱后面包子继续吃
if( i === 5 ){
continue
}
break : 吃到第五个包子,吃饱了, 后面的包子不吃了。
if (i === 5) {
break
}
document.write(`<p>我正在吃第${i}个包子</p>`)
}