运算符

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. npm run serve修改为npm run dev

    找到package.json文件,打开文件找到  "serve": "vue-cli-service serve"  这一行,把前面的 serve 修改 dev ...

  2. FastDFS 技术整理

    1.FastDFS 1.1.了解基础概念 1.1.1.什么是分布式文件系统? 全称:Distributed File System,即简称的DFS 这个东西可以是一个软件,也可以说是服务器,和tomc ...

  3. 为什么Dapr是比SpringCloud和Istio更优雅的微服务框架?

    Dapr 是微软主导的云原生开源项目,2019年10月首次发布,到正式发布 V1.0 版本的不到一年的时间内,github star 数达到了 1.2万(现在已经超过1.7万星),超过同期的 kube ...

  4. mysql 开启binlog日志,恢复误删的表、数据、mysql库

    linux下开启mysql的binlog日志功能 1.配置mysql配置文件my.cnf(内容如下). #配置文件储存的位置log-bin=mysql-bin#5.7以及以上版本需要配置这一行(保证唯 ...

  5. Cent OS8.0 及以上版本安装禅道教程

    Cent OS8系统下安装禅道需要搭建环境如下:httpd ,mariadb , php7.2 再运行禅道 一,环境说明: 运行环境推荐使用 Apache + PHP(7.0/7.1/7.2版本) + ...

  6. WAVE音频格式及及转换代码

    音频信号的读写.播放及录音 python已经支持WAV格式的书写,而实时的声音输入输出需要安装pyAudio(http://people.csail.mit.edu/hubert/pyaudio).最 ...

  7. 22.LVS+Keepalived 高可用群集

    LVS+Keepalived 高可用群集 目录 LVS+Keepalived 高可用群集 keepalived工具介绍 Keepalived实现原理剖析 VRRP(虚拟路由冗余协议) VRRP 相关术 ...

  8. React技巧之组件中返回多个元素

    原文链接:https://bobbyhadz.com/blog/react-return-multiple-elements 作者:Borislav Hadzhiev 正文从这开始~ fragment ...

  9. nifi从入门到实战(保姆级教程)——身份认证

    上一篇我们搭建好了nifi的运行环境了 但是每次登陆那一串随机字符串的用户名和密码是不是让人很头疼,那是人类能记住的吗?当然不是!!!! 那么今天我们就来消灭这些难看又难记的字符串. windows( ...

  10. Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification理解

    简介:这篇文章属于跨域无监督行人再识别,不同于大部分文章它使用了属性标注.旨在于能够学习到有属性语义与有区分力的身份特征的表达空间(TJ-AIDL),并能够转移到一个没有看到过的域. 贡献: 提出了一 ...