一元换算符

字符串类型 对于字符串,来说自增或自减会自动进行类型转换

1.var str = '10' 自动转换 从string转为number

2.str++ NaN 对于转化不成功的string类型数据会变为NaN

3.关于布尔类型

1为true 0为false

number类型 非0和NaN就是true 自动进行转换

4.关于null类型

自动转换对应Boolean类型 然后再从Boolean转为Number

5.关于undefined

undefined转换不成功 NaN

6.关于Number类型
一元换算符只能和变量一起 不能出现其他的换算符
进行++ 或者 -- 不管++是前置还是后置都是先转换为number

比较运算符(关系运算符)

比较运算符 == 返回的都是boolean类型 要么是true 要么是false

console.log(typeof null)//object

console.log(typeof undefined) //undefined

>大于 小于<

boolean 自动转换 true对应1 number类型转布尔类型

null不会自动转为boolean类型 undefined也不会自动转换布尔类型

==比较的是值
number比较 直接比较大小
number 和 Boolean比较 会把Boolean转为number再比(0,1)
如果number类型和字符串类型比较 如果字符串里面存储的是数值 那么对应的就是数值比较
如果对应的字符串里面存储的是字符串 会自动转为number类型 转不了就是NaN(NaN和任何比都是false)

console.log('a'>1) // NaN //false

字符串跟字符串比较 比较的是ascii码 一套固定的编码 每个字母都有一个对应的编码值(区分大小写)
//a 97 //A 65 //0 48

console.log('a'>'b') //false

console.log('a'>'B') //true

>= <= 只要满足一个就是true
恒等 === 比较值还要比较地址 == 只是比较值
NaN 特性 不能进行比较 返回结果false

逻辑运算符

与 && 同true则为true 其他都是false
& 断路与 (效率低,不用)

console.log('A'<'a' && 2>1) // true

console.log('A'<'a' && 2<1) // false

或 || 一个为 true 就是true
| 断路或 (效率低,不用)

console.log('A'<'a' || 2<1) // true

console.log('a'>'b' || 1>2) // false

非 ! true变false false变true

console.log( ! ('a'<'b') ) ;//false

console.log( ! ('a'>'b') ); //true

//undefined转为number 为NaN
//undefined值 不需要转换 != ===
var num1 , num2=10
console.log(num1!=num2 && num1<num2); // false
console.log(num1!=num2 || num1<num2);//true

三元运算符 三目运算符

布尔类型表达式 ? true的结果:false的结果
console.log(!0?10:20); //10
console.log(1!=1?10:20) // 20 var num = 'a'>'B'?12+'3':45/2
console.log(num); //123
console.log(typeof num); //string

分支结构

浏览器的解析结构顺序为 从上到下 从左之右

分支结构 多个分支 进行其中一个
if(布尔类型表达式){
分支一
}else{
不满足上述条件进入的分支
}
一旦进行其中一个分支就不会再进行下一个
分支块里面执行的语句只有第一句

switch

switch属于分支结果

if里面的表达式为布尔类型 Boolean表达式

switch的值表达式 有确定的值
switch case 一起使用

switch(值表达式){

​ case 值1:

​ case 值2:

​ case 值3:

​ default:默认的

}

break 跳出这个switch块
当不存在break时 会从匹配的选项走到底
当上面的case都不匹配值表达式就会进入default选项
switch支持任意类型的值 就NaN不支持

JavaScript 02 运算符,分支结构的更多相关文章

  1. JavaScript中的分支结构

    说到JavaScript中的分支结构,我们就不得不提到流程控制这个词,我们所有的程序都是由数据和算法组成的.程序=数据+算法通常我们所说的算法都可以通过"顺序","分支& ...

  2. C阶段【02】 - 分支结构

    知识重点: BOOL布尔类型 关系运算符 逻辑运算符 if语句 枚举类型 switch语句 一.BOOL布尔类型 用来存储“真”或者“假”,变了只有YES和NO两个值.YES(1)表示表达式结果为真, ...

  3. java 基础 03 运算符 分支结构 循环结构

    今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...

  4. JavaScript知识点:分支结构(if、switch)+算法例题

    if-else分支 1.if条件应该是boolean类型的值或表达式 2.如果条件不是Boolean,会进行自动转换 以下几种情况会默认转换为 false: if(0).if(0.0) if(NaN) ...

  5. HTML-JS基础 变量与输入输出 运算符 分支结构

    js中的变量 1.JS中变量声明的写法: var num=10;//使用var声明的变量属于局部变量只在当前作用域内有效 num=10;//不用var声明的变量,默认为全局变量,在整个JS文件中都有效 ...

  6. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...

  7. JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构

    JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...

  8. java 基础 02 数据类型、运算符、分支结构

    内容: (1)数据类型 (2)运算符 (3)分支结构 1.数据类型 java语言中的基本数据类型:byte.short.int.long.float.double.boolean.char. 1.1布 ...

  9. java学习(四)修饰符、运算符、循环结构、分支结构

    修饰符 一般是放在定义类,方法,变量的最前端 访问控制修饰符 修饰符 当前类 同一包内 子孙类 其他包 public Y Y Y Y protected Y Y Y N default Y Y N N ...

随机推荐

  1. Solution Set -「ARC 107」

    「ARC 107A」Simple Math   Link.   答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...

  2. C# 不区分大小写替换文本

    C# .NET类库自带的str.Replace() 方法替换文本不能区分大小写.我们可以自己编写一个扩展方法,支持文本忽略大小写替换.以下扩展方法实现了使用正则表达式忽略大小写替换文本. public ...

  3. uniapp 微信发送订阅消息

    这篇主要针对小程序进行演示,既然是发送消息,那么就有三个问题.发送什么内容,给谁发送,怎么发送!往下一条一条解决. 发送什么消息内容 - 通过微信公众号平台 选择对应的消息模板 选择以后在我的模板里面 ...

  4. 在线pdf请你谨慎打开

    本篇其实算之前安全整改话题的一点补充,对之前内容感兴趣的可以走以下快捷通道: 安全漏洞整改系列(二) 安全漏洞整改系列(一) 背景 前不久某家客户对我们提供的系统又进行了一轮安全测试,其中有一条我觉得 ...

  5. ios plist获取权限

    最近太忙了,没有时间写vue 这个权限获取有点坑,极不好记,所以备份一份 <key>NSVideoSubscriberAccountUsageDescription</key> ...

  6. CentOS7更新OpenSSH8

    今天使用漏洞扫描工具扫描了一下系统漏洞,发现有一个openssh版本的漏洞.所以本着安全的原则修复一下. 第一时间打开百度搜索相关内容,大多数是编译安装的.每个人的环境和版本也不一样.有一定连不上去的 ...

  7. pytest--pytest基本介绍

    pytest简介 pytest 是 python 的第三方单元测试框架,比自带的 unittest 更简洁和高 效,同时兼容 unittest 框架.它还有如下优点: 1.简单灵活,容易上手,文档丰富 ...

  8. 记一次阿里云oss文件上传服务假死

    引言 记得以前刚开始学习web项目的时候,经常涉及到需要上传图片啥的,那时候都是把图片上传到当前项目文件夹下面,每次项目一重启图片就丢了.虽然可以通过修改/tomcat/conf/server.xml ...

  9. maven配置本地仓库和远程仓库

    配置本地仓库 修改maven安装目录下conf/settings.xml,也可以在idea配置中覆盖 <localRepository>E:\maven\MavenRepository&l ...

  10. 2020.10.6 ThreadLocal

    在多线程环境下,每个线程都有自己的数据.一个线程使用自己的局部变量比使用全局变量要好,因为局部变量不会被其他线程改变. 但是局部变量也存在问题--在函数调用的时候,传递起来很麻烦: def proce ...