js中if判断语句执行原因--数据类型转换原理
栏目: JavaScript · 发布时间: 4年前
内容简介:相信我们程序员平时写代码用的最多的逻辑就是if语句了吧,可你知道他的原理是什么吗,其实这跟Boolean()这个方法有关,此方法为自动执行(在需要判定Boolean的语句中中自动执行),这些转换规则对理解if控制语句自动执行相应的Boolean转换非常重要,这是我们平时所写的代码其实执行起来是这样,理解一下
前言:
相信我们 程序员 平时写代码用的最多的逻辑就是if语句了吧,可你知道他的原理是什么吗,其实这跟Boolean()这个方法有关,此方法为自动执行(在需要判定Boolean的语句中中自动执行),这些转换规则对理解if控制语句自动执行相应的Boolean转换非常重要,
这是我们平时所写的代码
var a = "auto" if(a){ console.log("执行") }
其实执行起来是这样,理解一下
var a = "auto" if(Boolean(a)){ console.log("执行") }
这样其实就好理解了,每个类型的值其实都可以转换为Boolean值,有一定的规则,接下来我们看看具体操作
取证
将需要转换的数据传递给Boolean()函数
-
Boolean: 毋庸置疑true就是true,false就是false,但是new Boolean这里有坑
var boolean1 = true; // true; var boolean2 = false; // false; console.log(Boolean(boolean1)); console.log(Boolean(boolean2));
// 这里坑来了 Boolean()是返回布尔值,new Boolean()是返回布尔对象(对象里面的值为false,)
var x = Boolean(false); if (x) { // 这里的代码不会被执行 } var x = new Boolean(false); if (x) { // 这里的代码会被执行 }
注意不要将基本类型中的布尔值 true 和 false 与值为 true 和 false 的 Boolean 对象弄混了。不要在应该使用基本类型布尔值的地方使用 Boolean 对象。
var x = Boolean(expression); // 推荐(Boolean值) var x = new Boolean(expression); // 不推荐,Boolean对象里的值不管是true还是false,只要对象有值都会判定为true,if语句中都会执行、
- String : 只要不是空字符串(没有任何内容),任何非空字符串(包含空格) 都会转换为true
var str1 = ""; // "" --> false var str2 = " "; // " " --> true; var str3 = "abc"; // " " --> true; console.log(Boolean(str1)); console.log(Boolean(str2)); console.log(Boolean(str3));
- Number : 只有0和NaN会转换为false,其他都会转换为true
var num1 = 0; //false var num2 = -1; //true var num3 = 1; //true var num4 = NaN; //false console.log(Boolean(num1)); console.log(Boolean(num2)); console.log(Boolean(num3));
- null、undefined : 都会转换为false
var n = null; //false var u = undefined; //false console.log(Boolean(n)); console.log(Boolean(u));
总结:
false / "" / NaN / 0 / null / undefined 都会转换为 false
注意 Boolean() 和 new Boolean()的区别
参考:
大部分取经于js高程红宝书26页,3.4.4章节(Boolean类型的介绍)
new Boolean()的坑取经于 MDN中Boolean的描述
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 不使用 if-elif 语句,如何优雅地判断某个数字所属的等级?
- 不使用 if-elif 语句,如何优雅地判断某个数字所属的等级?
- 你有没有想过: Java 虚拟机是如何判断两个对象是否相同的?判断的流程是什么?
- iOS Rotation 判断
- 判断是否是闰年
- 数值类型(金额)限制与判断
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
代码阅读方法与实践
斯平内利斯 / 赵学良 / 清华大学出版社 / 2004-03-01 / 45.00元
代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题......一起来看看 《代码阅读方法与实践》 这本书的介绍吧!