JavaScript 是一种可以在浏览器中运行的脚本语言,是一种弱语言(相对于C,C#,JAVA而言),只要是计算机语言就会使用到条件判断式,而JavaScript作为一种“弱”语言,它的条件判断常常令人困惑不解。
例如:
if ('0') alert("'0' is true"); if ('0' == false) alert ("'0' is false"); 结果是,两次都 alert 了!那么 '0' 到底是 true 还是 false 呢? 下面我们就来一起探讨js的条件判断 一.单条件判断 undefined-----false null----------false 0-------------false "0"-----------true--字符串,非空字符串 ""------------false -1------------true--非0数字 NaN------------false NaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。 总结: 在 JavaScript 里,不为空 "" 的字符串、不为 0 的数字、不为 null 的对象、 不为 undefined 的对象属性、不为NaN的布尔型 true,反正为false。 二.理解==和===的区别 1. ==会把比较的二者进行类型转换: 2. ===是不会把比较的二者进行类型转换,是string就是string,是number就是number 如: 0 === false; // false, 因为0是number,false是boolean,两者就肯定不相等 1 === true; // false JavaScript中undefined==null 但undefined!==null undefined与null转换成布尔值都是false 。 再深入分析下JS对于标量应用==比较时的情况 对于相同类型的两个标量的比较,除了NaN比较特殊之外(NaN==NaN返回false),都没什么疑点 而对于类型不同的两个标量的比较,JS就有一套严格的规则,其规则是,总将两边的值转换成数字, 再看看转换结果数字是否相等 。 将一个简单类型(这里指除undefined与null的值)与一个对象比较时, 先调用对象的valueOf方法,以期待返回一个标量,如果对象的valueOf方法返回的仍然是一个复合 对象的话 就接着调用对象的toString方法以期待返回一个标量,如果仍然没有返回标量的话,就判为 不相等 如果valueOf或toString方法之一返回一个标量,就用这个标量同==另一边的标量进行比较 总结: Number,Boolean,String,Undefined这几种基本类型混合比较时,会将其转换成数字再进行比较 1.基本类型与复合对象进行比较时,会先将复合对象转换成基本类型(依次调用valueOf与toString方法) 再进行比较 。 2.undefined被当成基本类型,undefined转换成数字是NaN,因此undefined与除null之外的其它类型值进 行比较时始终返回false(注意NaN==NaN返回false) 3.null被当成复合对象,由于null没有valueOf与toString方法,因此和除了undefined之外 的其它类型值进行比较时始终返回false 到这里我们就应该能明白开始的例子为什么会alert两次了吧。同时提醒平常开发还可以使用“===",注意 ”==“和”===“的区别
相关推荐
JavaScript条件判断和循环【JavaScript全栈入门教程3】
打开一个新窗体传值与回传值 脚本验证正则表达式 判断gridview是否有选中行 删除前给出提示 屏蔽键盘 checkbox的全选/取消等
JavaScript使用if () { ... } else { ... }来进行条件判断。下通过语句代码给大家详细介绍js 条件判断的基本知识,需要的的朋友参考下吧
js 树形结构数据遍历条件判断删除对应数据
今天在为网站增加一些代码功能的时候,需要用到if条件判断,发现简写方法忘了,这里特整理下
我们已经知道,null 没有任何的属性值,并且无法获取其实体(existence)值。所以 null.property 返回的是错误(error)而不是 undefined 。
利用与或运算符优先级实现if else运算,让你的代码更精简。
我们编写js代码时经常遇到复杂逻辑判的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃肿,越来越看不懂,那么如何更...
主要给大家介绍了关于JS中比Switch...Case更优雅的多条件判断写法,文中通过示例代码介绍的非常详细,对大家学习或者使用JS具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
一个简单的通过js判断访问请求来路进行页面跳转的示例,页面必须运行在服务器环境下,直接双击打开是无效的,有需要的看看吧。
对于多条件判断写法,大部分程序员都是采用if…else if…else或者switch…case的写法,但是有一种多条件判断写法,比传统写法更加有趣且优雅——对象属性判断法。 实例展示 废话不多说了,下面直接用三个实例,给...
绍javascript里的条件判断
主要介绍了JavaScript中的条件判断语句使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下
后台layui表单生成器代码复制即用,添加编辑一体,可条件判断 使用方式:放在服务器根目录访问域名+/tfForm/index.html使用本程序
主要介绍了JS 逻辑判断不要只知道用 if-else 和 switch,在一些逻辑复杂度的增加,代码中的 if/else 和 switch 会越来越臃肿。本文将带你尝试写出更优雅的判断逻辑,需要的朋友可以参考下