运算符

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效率会高(用
空间换时间)

js运算符和逻辑分支的更多相关文章

  1. js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框

    js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...

  2. JS运算符,流程控制,函数,内置对象,BOM与DOM

    运算符 1.算数运算符 运算符 描述 + 加 - 减 * 乘 / 除 % 取余(保留整数) ++ 递加 - - 递减 ** 幂 var x=10; var res1=x++; '先赋值后自增1' 10 ...

  3. JS运算符

    JS运算符: 使用的运算符的时候不需要声明变量,运算符非变量:1.算术运算符 + - * / % (%为取余数运算符) (自增运算符++) (自减运算符 --) + 运算符作用:1.数值相加 2.字符 ...

  4. js 运算符优先级

    在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...

  5. js 运算符的执行顺序

    js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...

  6. js运算符(运算符的结合性)

    1.javascript具有下列种类的运算符:算术运算符;逻辑运算符;比较运算符; 2.目的分类:字符串运算符;逻辑运算符;逐位运算符;赋值运算符; 3.特殊运算符:条件运算符;typeof运算符;创 ...

  7. js运算符单竖杠“|”的用法和作用及js数据处理

    js运算符单竖杠“|”的作用 很多朋友都对双竖杠“||”,了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js ...

  8. js运算符的一些特殊应用

    作者: 小文 来源: http://www.cnblogs.com/daysme/ 时间: 2017/3/2 17:21:03 本文集合了了js运算符的一些特殊应用. js位运行符的运用. js运算符 ...

  9. js中的逻辑与(&&)与逻辑或(||)

    var foo = 1; var bar = 0; var tar = false; var baz = 2; 一.js中的逻辑与(&&) 1.当第一个数为true时,返回第二个数: ...

随机推荐

  1. Anaconda新建虚拟环境并添加到Jupyter Notebook

    可参考:https://www.jianshu.com/p/ab9ae548b253 虚拟环境是Python的隔离工作副本.这意味着每个环境都可以具有自己的依赖关系,甚至可以具有自己的Python版本 ...

  2. 阶段性总结 GDOI 2022 PJ

    阶段性总结 GDOI 2022 PJ 比赛经过 Day ? ~ Day -1 半停课集训,补了很多东西,但是之前漏得太多了,结果是还有很多题没改 打了若干场 AtCoder ,承认自己思维的不足,训练 ...

  3. 开源流程引擎Camunda BPM如何扩展数据库表

    前言 在使用开源流程引擎(如:JBPM.Activiti.Flowable.Camunda等)的时候,经常会遇到这样的需求,我们需要按照业务需求增加一张数据库的表,而且这张表是跟工作流引擎有交互的(注 ...

  4. 将Hexo搭建到自己的服务器上

    http://xybin.top/posts/9373.html 第一部分:服务器端的操作 1.安装git 和nginx yum install -y nginx git 2.添加一个git用户 #添 ...

  5. Linux安装Anaconda3完整教程

    Linux安装Anaconda3完整教程 欢迎关注H寻梦人公众号 相关链接 官方安装Anaconda3教程 [手把手教你]如何在Linux系统搭建jupyter notebook CentOS8.2安 ...

  6. archlinux-小米pro15_2020款使用archlinux(MX350显卡驱动安装)

    1.官网下载archlinux ISO镜像 https://archlinux.org/download/   使用磁力链接下载 2.使用软碟通将镜像写入U盘,制作成U盘启动盘 3.进入BIOS 关掉 ...

  7. 不可思议的返回功能——python

    今天给大家分享 3 个比较冷门的知识.教程点这(https://jq.qq.com/?_wv=1027&k=zLK3I0M5) 第一个:神奇的字典键 (https://jq.qq.com/?_ ...

  8. C#中List实体类转换为object 并把参数返回到前端

    用ConvertAll方法转换: List<Object> m= list.ConvertAll(s=> (object)s); 返回的结果:

  9. 8.4 苹果macOS电脑如何安装Java开发环境(JDK)

    和Windows电脑安装差不多. 下载 来到JDK官方下载界面,点击Java SE 8(简称JDK 8)后面的JDK下载,来到该界面,先同意协议,然后下载对应平台的JDK,我们这里下载Mac OS X ...

  10. 021(Keywords Search)(AC自动机)

    题目:http://ybt.ssoier.cn:8088/problem_show.php?pid=1479 题目思路:一道AC自动机的模板题 备注:还不会字典树和KMP的尽早回去重修 如果让你在一篇 ...