运算符和条件控制语句
一元运算符
()不能和++一起用,两者处于同一优先级
console.log(++(a--));报错
字符串和数值进行比较
console.log("123">123); false 自动转为number
console.log("123A">123); false 自动转为number,如果不能转就会出现NaN
console.log(NaN>NaN); false
undefined派生自null:
console.log(undefined==null); true
console.log(undefined===null); true
比较字符串:比较两者ASCII码,比较第一位
A:65 ; a:96
console.log("bAA">"azz"); false
boolean和null进行比较,自动转成数值
console.log(true>null) true
console.log(true>undefined) flase
比较出现NaN即为flase
等于和恒等
console.log(Number(true)==1); true
console.log(Number(true)===1); true
console.log(Boolean(0)==flase); true
存在数据类型转换时,先进行数据类型转换再比较
null值同0比较
null是一个空对象引用,,对应是引用类型,注:引用类型比较的是地址。
console.log(null==0); flase 等于比较时 不会进行数据转换
console.log(undefined==0); flase undefined为NaN
逻辑运算符
短路原则
&&短路:只要前为假后就不再比
var a=10,b=20,c=30;
console.log(a>b&&b<c);
||短路:只要前为true后就不再比
console.log(c>b||a>b);
!取反
断路原则
&断路,不论前真假,继续比较后
|断路
|| 有一个为true 取true
console.log(a>b ||20) //20
var i=0||10
console.log(i);
//两个都是false 取最后一个
var str =undefined || " "
console.log(str)
//如果两个都为true,取第一个true
var str1= "A "||"B"
console.log(str1);
var str2=" "||'false' ||'true'
console.log(str2);
三目运算优先级同对应逻辑运算优先级一样
var str3=(10 >20 ? ' ': '123') ||(30>20 ? ' ' :'456')
console.log(str3);
var str3=10 >20 ? ' ': '123') ||(30>20 ? ' ' :'456')
&&:若全为false直接取false ,如果true取最近一个
取非“自动转换为boolean
var str6=!123
console.log(str6); //false
程序控制语句
条件控制语句:
if:
if 如果(条件一)
else if (条件二)
else
同时满足条件一和条件二,只会进入第一个满足的条件。
如if (条件表达式){
需要执行的代码}
else if(条件表达式){需要执行的代码
}else{需要执行的代码
}
条件表达式为Boolean类型的值,如果不是布尔值会自动转换。
switch
switch是对于对应值的判断,判断条件表达式的值,case中包含值选项。
//恒等判断,值和对应类型应一样
switch(表达式){
case 值(常量): 操作 break;
case 值: 操作 break;
case 值: 操作 break;
default:当上面case都不满足时执行
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了