你了解if语句吗?

一、if(a)语句中的a是真是假

var bool = new Boolean(false);
if (bool) {
  console.log(‘true‘);
} else {
  console.log(‘false‘);
}

运行结果为true,因为bool是一个对象,空对象。

var a = [0];
if ([0]) {
  console.log(a == true);
} else {
  console.log("camille");
}

运行结果为false,因为[0]是一个引用类型,不是假值,于是进入if语句;又因为比较[0]和true前,会做隐式转换,[0]转换为数字是0,true转换为数字是1,那么0==1,结果为false是情理之中的事。

//综上
假值:0,+0,-0,NaN,"",false,undefined,null
非假值:Infinity,‘0‘,‘false‘," ",[],{},function(){}

二、if (a && b)的含义

&&是种短路语法,求值后不一定是个Boolean类型,更不是两边转化布尔值再运算,而是a && b进行表达式求值后,然后再转换为Boolean类型。

比如 2&&3 的结果是3,不是true。

所以if(a && b),我们平常理解的那种,"如果a和b同时为真,就如何如何",是一种错误的描述方式。逻辑或 || 也是如此,先进行表达式求值,再转换为Boolean类型。

时间: 2024-10-02 06:26:51

你了解if语句吗?的相关文章

python基础之条件循环语句

前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python interprets non-zero values as True. None and 0 are interpreted as False. Python 判断非0的值为 True, 而None和0被认为是 False.注意这里的True和False首字母大写,Py

js中哪些语句在if语句中默认为真

结论:js中有一个函数是:Boolean(value)这个函数把一个value值转换成相应的boolean值. 当value为以下值是为true:1.任意的非空字符串 .2.任意的非0数字 而当value为以下值为false:1.空的字符串即("").2.0和NaN(Not a Number) .3.undefined 在if语句中写入上面的value,浏览器会自动调用Boolean(value)这个函数. 例如:if ("hello world"){ alert(

python学习笔记二:if语句及循环语句,断点,模块,pyc

if语句 注意:语句块中的内容要强制缩进,否则出错.IndentationError,缩进错误 所有代码,如果是顶级的,必须顶格写,前面不能有空格 if - : - elif - : - else: - while语句 while -: - else: - for语句 for i in range(10)--i默认0,步长默认1,最大为9 for i in range (0,2,10)--从0开始,步长为2,最大为8 for  i   in range(-): - else: - break--

17-4 delete-truncate语句-练习

--删除数据语句: --delete from 表名 where ... --delete语句如果不加where条件,表示将表中所有的数据都删除,加where条件后,会按照where条件进行删除. --删除TblStudent表中的所有数据, --自动编号并没有恢复到默认,仍然继续编号 delete from TblStudent --删除所有性别为'女',同时年龄小于20岁的 delete from TblStudent where tSGender='女' and tSAge<20 --删除

选择结构if语句和switch语句的区别

1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if(比较表达式2) { 语句体2; }else if(比较表达式3) { 语句体3; } ... else { 语句体n+1; } B:执行流程: 首先计算比较表达式1看其返回值是true还是false, 如果是true,就执行语句体1,if语句结束. 如果是false,接着计算比较表达式2看其返回值是true还是false, 如果是true,就执行语句体2,if语句结束. 如果是fals

java语言基础与go语言基础,if语句的区别

1.java if 语句 1,if语句 if (条件){ 语句: } if(条件){ 语句1: }else{ 语句2: } 2,多重if-else语句 if(条件1){ 语句1: }else if(条件2){ 语句2: }else{ 语句: } 2.go if语句 关于条件语句,需要注意以下几点: ? 条件语句不需要使用括号将条件包含起来(): ? 无论语句体内有几条语句,花括号{}都是必须存在的: ? 左花括号{必须与if或者else处于同一行: ? 在if之后,条件语句之前,可以添加变量初始

sqlserver数据库的sql语句使用

             T-SQL查询语句 1. tansact-SQL编程语言 美国国家标准协会(ANSI)和国际标准组织(ISO)为 SQL定义了标准,微软通过用Transact-SQL和ANSI-SQL兼容,Transact-SQL还包含了几种能够增强性能的扩展. T-SQL的组成:   数据定义语言(Date Definition Language)语句简称DDL语句 DDL语句用来建立数据库,数据库对象(create,alter,drop) create object_name al

SQL 数据库T-SQL语句查询

         SQL 数据库T-SQL语句查询 附加数据库的数据文件 查询表中种类是水果的出厂日期在201-04-01之后的 查询所有种类的总成本 以倒序的方式查询表中水果的成本 查询种类是蔬菜的并且价格在1-5之间 将product表中的名称,种类,出厂日期的数据保存在另一个名为product_new的表中,并查看 在products表和sales表中查询产品的名称.种类.成本.销售地点和销售价格. 在products表和sales表中查询销往海南的产品名称.种类.成本和销售价格. 查询年

学习mysql的笔记:mysql十大基本入门语句

学习mysql数据库,从最简单的十条入门语句开始.刚开始学习mysql,老师让我们用cmd控制台输入语句,而不是选择用工具输入,这是为了我们能够先熟悉mysql语句. 首先要先进入mysql,语句为:mysql -hlocalhost -uroot -p  然后回车,输入密码. C:\Users\Administrator>mysql -hlocalhost -uroot -p Enter password: ****** 成功进入的话会出现 Welcome to the MySQL monit

oracle sql语句运行效率

--当前执行sql语句 SELECT a.SID , a.SERIAL# , a.USERNAME , b.PARSE_CALLS , b.PARSING_SCHEMA_NAME , b.CPU_TIME / 1000000 , b.ELAPSED_TIME / 1000000 , b.DISK_READS , b.DIRECT_WRITES , b.BUFFER_GETS , a.event , b.sql_text , b.SQL_FULLTEXTFROM v$session a INNER