JavaScript 的if语句和==的判断
一. if(xx)的判断
JavaScript 遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值。系统内部会自动调用Boolean函数。
1.当if括号里面的表达式为Boolean时,直接判断
- if (true){
- console.log("true"); //true
- }
- if (false){
- console.log("true"); //false
- }
2.当if括号里面的表达式为Number时,分两种情况,当number为+0,-0,NaN的时候,为false;其他为true。
- if(0){
- console.log("true"); //false
- }
- if(NaN){
- console.log("true"); //false
- }
- if(1){
- console.log("true"); //true
- }
3.当if括号里面的表达式为String时,空字符串为false,其他为true;
- if(""){
- console.log("true"); //false
- }
- if("abc"){
- console.log("true"); //true
- }
4.当if括号里面的表达式为Undefined时,为false;
- if(Undefined){
- console.log("true"); //false
- }
5.当if括号里面的表达式为null时,为false;
- if(null){
- console.log("true"); //false
- }
toBoolean
类型 | 结果 |
---|---|
undefined | false |
null | false |
Boolean | 直接判断 |
string | ""(空字符串)为false,其他为true |
Object | true |
Number | +0,-0,Nan为false,其他为true |
二. a==b的判断
==是比较两个值是否相等,相同类型直接比较,不同类型的话,看情况转换。
- String==Number --->toNumber(String)==Number
- "" = 0 ; //true,因为“”转换为0
- " " = 0 ; //true
- "hello" == 1 //false ,因为"hello"转换为NaN
- "hello" == 0 //false,同理
- Boolean==(any) --->toNumber(Boolean)==(any)
- 1==true; //true,因为true转换为1
- 0==false;//true ,因为false转换为0
- "0" == true //false
- "0" == false //true
- "00" == false //true
- "0.00" == false //true
- Object==String/Number---->toPrimitive(Object)
对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结
果
- {} == true // false
- [] == true //false
- var obj = {
- a: 0,
- valueOf: function(){return 1}
- }
- obj == "[object Object]" //false
- obj == 1 //true
- obj == true //true
- null==undefined,//true
- ==知识点
如果两个值类型相同,则执行严格相等的运算
如果两个值的类型不同
如果一个是null,一个是undefined,那么相等
如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
如果一个值是true/false则将其转为1/0比较
如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
其它就不相等了
toNumber
类型 | 结果 |
---|---|
Undefined | NaN |
Null | 0 |
Boolean | ture->1,false->0 |
String | (""-->0, " "-->0 )空字符串与空白字符串转换数值0,abc"->NaN,"123"->123 |
JavaScript 的if语句和==的判断的更多相关文章
- Javascript 利用 switch 语句进行范围判断
; switch (true) { ): alert("less than five"); break; ): alert("between 5 and 8") ...
- 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...
- 前端笔记之JavaScript(三)关于条件判断语句、循环语句那点事
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力语法 ...
- JavaScript If...Else 语句
JavaScript If...Else 语句 JavaScript的开头和结束标签: <script type="text/javascript"></scri ...
- 【详解JavaScript系列】JavaScript之流程语句
一 开篇概述 本讲主要讲解JavaScript流程语句,其大致内容包括如下: 其中,常用的if,while,do..while,for在本片文章就不论述,重点论述for..in..,label,bre ...
- JavaScript if 条件语句
JavaScript if 条件语句 使用: if(条件){ }else if(条件){ }else if(条件){ }else{ } 示例: // 判断相等 if(1==1){ } // 判断不等 ...
- Javascript - 表达式与语句
表达式与语句(Expression&Statement) 流程控制语句 1.嵌入式语句 嵌入式即这种语句可以无限嵌套N层.所有嵌入式语句只需要键入首个关键单词,在visual studio里按 ...
- JavaScript权威指南--语句
知识要点 在javascript中,表达式是短语,那么语句(statement)就是整句或命令.表达式计算出一个值,但语句用来执行以使某件事发生. 1.表达式语句 具有副作用的表达式是JavaScri ...
- C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断
C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.2 ...
随机推荐
- Coverity代码扫描工具
1.说明:Coverity代码扫描工具可以扫描java,C/C++等语言,可以和jenkins联动,不过就是要收钱,jenkins上的插件可以用,免费的,适用于小的java项目 2.这是Coverit ...
- Pylon5 SDK搭配OpenCV使用入门
本文假设已经安装了Basler官网提供的Pylon 目前最新的版本是5.0.5,如果上述链接打不开,请直接所有Basler官网下载,需要注意的是在安装Pylon5时要选择Developer模式,这样才 ...
- bootstrap selectpicker控件select下拉框动态数据无法回显的问题
有关于selectpicker下拉框数据回显的问题,当查看一个对象的属性的时候, 发现有关于selectpicker的下拉框并没有将返回的数据进行回显,显示的都是请选择, 经查证,当查看属性的时候,他 ...
- Maven mvn install 本地jar添加到本地maven仓库中
mvn install:install-file -DgroupId=alipay -DartifactId=taobao-sdk-java-auto -Dversion=1.0 -Dpackagin ...
- css固定div头部 滚动条滚动内容
页面布局,固定头部,滚动下方内容 实际场景 在制作页面的时候,经常会遇到要这样的情况:整个页面,整体分三大模块,头部固定,内容区域,左边固定,右边可以滚动. 最终想要的效果 案例源码 <!DOC ...
- C++类的成员
1.成员变量 成员变量可以是任何类型,如基本数据类型.引用.另一个类的对象或指针.自身类的引用或指针,但不能是自身类的对象: 成员变量不能指定为auto.register.extern 存储类型. 1 ...
- python---日常练习
##输入a,b,c,d4个整数,计算a+b-c*d的结果 #numa=input('请输入整数:'); #numb=input('请输入整数:'); #numc=input('请输入整数:'); #n ...
- 【Go】那么多数值类型,应该选哪个?
原文链接:https://blog.thinkeridea.com/201903/go/selection_of_numerical_types.html Go 内置很多种数值类型,往往初学者不知道编 ...
- JS this用法详解
随着对js的深入学习和使用,你会发现它里面包含了很多令人困惑的机制,比如对象.闭包.原型链继承等等 1.this是啥? 简言之,this是JavaScript语言中定义的众多关键字之一,它的特 ...
- JQuery 绑定单击事件到某个函数的的方法
<script> function 我会在加载完页面马上执行() { alert('我会在加载完页面马上执行'); } function 我只会在按钮点击时才执行() { alert('我 ...