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 ...
随机推荐
- Python内置函数之-property
property 是一个内置的装饰器函数,只在面向对象中使用 求一个圆的周长和面积 # 周长和面积都是通过类的方法得到from math import pi class Cricle: def __i ...
- LeetCode 929.Unique Email Addresses
Description Every email consists of a local name and a domain name, separated by the @ sign. For exa ...
- SpringCloud使用Nacos服务发现实现远程调用
本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...
- Python学习——python的常用模块
模块:用一堆代码实现了某个功能的代码集合,模块是不带 .py 扩展的另外一个 Python 文件的文件名. 一.time & datetime模块 import time import dat ...
- 如何设计一个restful风格的API
1.API接口应该尽量兼容之前的版本,在URL上应保留版本号,并同时兼容多个版本 2.每一个URI代表一个资源 3.请求方式要与http请求方式一致,GET(获取),POST(新增),PUT(更新全部 ...
- [POJ1723]SOLDIERS(中位数)
题意 给出n个点的坐标,它们只能往上.下.左.右一格一格地移动,求使其移动至水平线上的最小步数. 思路 转载 先易后难,对于纵向的问题,我们推个公式,,这个很容易看出是货仓选址问题,k取y[i]的中位 ...
- JQuery 目录树jsTree插件用法
PHP循环构造目录树结构 <ul> <php> function digui($fid,$level){ $class=M("wangpan_class") ...
- javascript自制函数图像生成器
出于某种目的想做这个东西,顺便可以提供给GMA的用户&&放在博客园. 实现上只是简单的描点,加上一个相邻两点连线的开关,完全没有技术含量.而且函数图像一旦多起来就会变卡. 瓶颈在隐函数 ...
- three.js 使用OrbitControls.js自由视角观察
首先,引入js文件: <script type="text/javascript" src="./path/to/OrbitControls.js"> ...
- Oracle SQL 内置函数大全(转)
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ...