js运算符和逻辑分支

运算符

1.拼接运算符:+,加号两边只要有一边出现字符串就是拼接

2.算术运算符  如:2+3;

3.赋值运算符+=,-=,/=,*=

4.关系运算符>,<,==,=== != !== !=== ==会自动做隐式转换,只要值一样即可 ===值和类型都要相等 如果已知两边类型就用===效率高于==

5.逻辑运算符: 与 & 找假 或 || 找真 非! 取反 && || 被称为短路运算符

 

关系运算符

出现NaN 一般都是false

console.log(NaN==NaN);//false

字符串和数值进行比较(字符串会自动转为数值)

console.log('123'>213);//false 自动转为number
console.log('123A'>213);//false 自动转为number如果不能转就会出现NaN

undefined是null的派生所以对应的值是相等的

//undefined(null的派生子类) 和 null
console.log(undefined==null);//true  ==表示相等  指俩个东西内容相同
console.log(undefined===null);//false  ===表示恒等 指俩个是同一个东西

字符串和字符串进行比较 (字符串将转换为ASCII码再进行比较)

//字符串和字符串比较(ASCII码 A 65 a 96 自动进行ASCII码的比较 比较第一位的 第一位相同再比较下一位...) 

ASCII码:
0-9:48-57
a-z:97-122
A-Z:65-90

console.log('a'>'b');//false
console.log('a'<'b');//true
console.log('bAA'<'azz');//false

console.log('bAA'<'bzz');//ture

布尔类型的值和null进行比较(自动转数值      出现NaN是false)

console.log(true>null);//true
console.log(true>undefined);//false

布尔类型的值与数值的比较(先转为同一类再比较)

console.log(Number(true)==1); //true
console.log(Number(true)===1); //true
console.log(Boolean(0)===false); //true

null值及undefined跟0进行比较

//undefined和0进行比较
console.log(undefined == 0);//NaN false
//null是空对象引用 对应的是一个引用类型 引用类型比较的是地址 null和0进行比较
console.log(null == 0); //false

·

 

 

 

 

逻辑运算符

 //逻辑运算符 && 短路与 &断路与 ||短路 或 |断路或!
    //&& 所有的同时满足才为真 && 只要前面有一个是假后面的就不会看了 &看完全部
    var a = 10
    var b = 20
    var c = 30
    // 只要前面有一个是假后面的就不会看了 所以只看了a>b fales
    console.log(a > b && b > c); //fales
    // 同为真则一直往下看,取最后一个真
    console.log(a < b && b < c); //true
    console.log(10 && 20) //20

    // ||有一个是true就是true  前面只要出现了ture 就不看后面的  |看完全部
    console.log(a < c || a > b); //ture
    console.log(10 || 20); //10
    console.log(a > b || a > c); //flaes
    //如果俩个都是false 取最后一个
    console.log(0 || null); //null

    //! 取反
    console.log(!c > b || a > b); //flase
    console.log(!(c > b && a > b)); //ture

 

三大流程语句

顺序语句:

从上到下执行,从左到右执行,而"="改变顺序

分支语句:

1.单分支: if(表达式){

   逻辑代码

}

2.双分支 if(表达式){

   逻辑代码

}  else{

  逻辑代码

}

多分支

if(表达式){

}else if(表达式){

}else if(表达式){

}else{

}            

switch 多分支 (恒等于)switch的比较属于恒等于 值和类型都要一致

switch (表达式) {

case 条件1:

你的逻辑代码

break; //终止,中断, 防止穿透

default:
        console.log('');//当上面都不满足的情况下才执行默认的操作
}

总结

if else else if 里面的代码只有一行可以省略{}
if 后面不一定要带else或者else if
if里面的表达式如果不是对应的boolean的表达式 他会强制转换为boolean类型(自动转换)
else 一定的是最后的 而且他是不带条件的
if 里面可以嵌套if 以及相关的内容(else else if都可以嵌套的)
switch 里面填写的表达式是会返回值 这个值一般是常量
switch里面有case和对应的default case表示一个个的选项 对应的default表示默认选项
多个case可以在一行书写 表示对应的处理语句是一个
break用于跳出整个代码块
跳出switch (也可以跳出循环的代码块)
switch必须要有规定的值的时候才用 他不会使用到有区间的内容(比对是恒等比对)
if 是可以使用区间值 也可以使用固定值
if效率和switch效率 从一行代码区分对应的来说 if效率会高点 多行代码区分 switch效率会高(用
空间换时间)

 

posted @   星辰大海呀呀呀呀  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示