一、运算符
1.算数运算符
- 在加法的时候如果出现字符串那么返回的绝对是一个字符串
- 在其他相关的操作的时候会强制将其他的类型转换为number类型再进行运算
- 如果在基础运算中没有出现字符串 而出现了NaN那么结果必定是NaN(NaN不能进行算数运算)
++和--前置后置的区别
- ++是自增 (在原本的基础上加1会改变原本的值)--是自减(在原本基础上减1 会改变原本的值)
- ++前置是先进行加1的操作 再执行后续的代码++后置先执行本行的的代码再进行加1的操作
逻辑运算符
- &&全部都为true才是true取最后一个true 只要一个为false那么对应的结果就是false取的是第一个false
- ||只要有一个是true结果就是true那么取得是第一个true全部是false才是false取最后一个false
- !进行boolean类型的强制转换 取反将true变false false变成true
- 短路与&&到达为false后面的不执行 短路或||到达为true后面的不执行
比较运算符
- 返回的值都是boolean类型的值
- “1”==1比较值“1”!==1 比较值的同时比较类型
- NaN!=NaN
- 出现NaN大部分都是false(!=)
- 任意类型和数值进行比较会被转为数值
- 字符串和字符串比较那么比较的是acsii码(从第一位开始比较 大写A 65 小写a 97)
赋值运算符
- 赋值运算最后执行
- += -= *= ...都是会在原本的基础上进行赋值
表达式
表达式就是由运算符拼接的公式
- 算法运算符拼接的表达式算术表达式
1+1
- 比较运算符拼接的表达式 条件表达式(转为boolean类型)
1+1>2
- 逻辑运算符拼接的表达式 关系表达式
1+1>2 && 1+2=3
条件控制语句
概述:
程序控制语句所有的语言都具备,主要为循环控制语句(循环执行)和条件控制语句(根据不同的条件执行不同的内容)
常用的条件控制语句
- if else (传递条件表达式 根据条件表达式来判断)
- switch case (空间复杂度大于if else 时间复杂度小于if else 传入一个值 根据来进行匹配)
二、逻辑分支IF
执行思路 : 如果if里面的条件表达式结果为真true则执行大括号里面的执行语句
如果if条件表达式结果为假则不执行大括号里面的语句 则执行if后面的代码
1.IF单分支
if条件判断语句的写法:
if (表达式){
执行语句
}
当括号内的表达式结果成立(为true时),则执行大括号内的语句,否则不执行。注意:
1. if后面的()不能省略。
2. 一条执行语句可以省略{}, 多条时不能省略{}, 建议不管是一条还是多条都写上{}
2.IF双分支语句
if双分支语句的写法:
if(表达式){
执行语句1 (如果条件成立,就执行这里的代码)
} else{
执行语句2 (如果条件不成立,就执行这里的代码)
}
当if括号内的表达式结果成立,进入执行语句1,否则进入执行语句2;
//算法:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被400 整除的就是闰年 //弹出prompt 输入框,让用户输入年份,把这个值取过来保存到变量中 //使用if 语句来判断是否是闰年,如果是闰年,就执行 if 大括号里面的输出语句,否则就执行else里面的输出语句 //一定要注意里面的且&&还有或者||的写法,同时注意判断整除的方法是取余为日 var num = prompt('请输入年份') if (num % 4 == 0 && num % 100 != 0 || num % 400 == 0) { alert('您输入的是闰年') } else { alert('您输入的是平年') }
// 接收用户输入的姓名,来判断是否中奖,如果输入的是刘德华,则提示中了5块钱,否则提示没有中奖。 var nun = prompt('请输入') if(nun == "蔡徐坤"){ alert("恭喜你获得kiun勋章一枚") }else{ alert('你不是ikun') }
3.IF多分支语句的写法:
if(表达式){
执行语句1
}
else if(表达式2){
执行语句2
}
else if(表达式3){
执行语句3
}
else{
执行语句n
}
- (从上往下,满足哪个条件就执行其相对应的语句,都不满足时,执行最后的else的语句,只能进入其中之一。)
【注意】
- 多分支语句还是多选1 最后只能有一个执行
- else if 里面的条件理论上是可以任意多个的
- else if 中间有个空格了
- if else允许多层嵌套 但是建议嵌套层级不要超过两层
注意事项
- if else 它只会进入其中一个条件 不会同时进入两个同级的代码块
- if 里面的条件可以为表达式也可以为值但是都会被转换为boolean类型
- f else允许多层嵌套 但是建议嵌套层级不要超过两层、
4.逻辑分支Switch
switch(表达式) {
case 常量1: 语句; break;
case 常量2: 语句; break;
…
case 常量n: 语句; break;
default:语句; break;}(结束语句)
-
- switch 的值比对用到的是=== 必须要类型和值都一致
- break的作用:是跳出switch结构,如果没有break,则继续执行下面分支的的语句(而不进行判断)。注意case穿透,要加break
- switch的应用场景: 表达式为固定值, 不能判断范围
- switch适合实际的值的列举if使用范围内容条件判断
- switch 空间复杂度高于if switch时间发杂度低于if
- 每个case块都是一个分支如果没有break那么进入下一个分支
- switch 不适用于范围内的比对
- default 默认的执行 上面都不满足的情况下执行
5.三元表达式
- 有三元运算符组成的式子我们称为三元表达式
- ++num 3 + 5 ? :
- 语法结构
条件表达式 ? 表达式1 : 表达式2
- 执行思路
如果条件表达式结果为真 则 返回 表达式1的值 如果条件表达式结果为假 则返回表达式2的值
5.代码体验
var num =10; var result = num > 5 ? '是的' : '不是的'//我们知道表达式是返回值的 console.log(result);
// 用户输入数字,如果数字小于10,则在前面补0,比如01, 09,如果数字大于10,则不需要补,比如20。 var num = prompt('请输入一个数'); var num2 = num<10 ?'0'+num :num; alert(num2)
6.switch
- switch语句也是多分支语句 也可以实现多选1
- 语句结构 switch 转换、开关 case 小例子或者选择的意思(break是退出的意思)
- 执行思路 利用我们的表达式的值 和 case 后面的选项值相匹配 如果匹配上,就执行case里面的语句 如果都没匹配上,那么执行 default里面的语句
【注意事项】
- 我们开发里面 表达式我们经常写出变量、
- 我们num 的值 和 case 里面的值相匹配的时候是 全等 必须是值和类型一致才可以 num===1
- break 如果当前的case里面没有break 则不会退出switch 是继续执行下一个case