if()和 a==b中不同数据类型的判断

if()

语法

if (condition)
   statement1 
else
   statement2

if返回结果为true时执行statement1,为false时执行statement2。
所以对于()中的数据类型如果不是boolean,会将其转换成boolean类型。

数据类型 转换boolean结果
number +0,-0,NaN转换为false,其余皆为true
string 空字符串为false,其余皆为true
undefined 皆为false
null 皆为false
object 皆为true

==

非严格比较,当比较的两个数据类型不同时,对于一些非number类型进行数据转化再比较。

  • 类型为boolean,string将转化为number再进行比较。
  • 类型为object,先调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果进行比较。
  • null 与 undefined 比较返回true。
  • 其他不同类型比较返回false.
数据类型 转换number结果
boolen true->1,false->0
string “abc” -> NaN, “123” -> 123
undefined NaN
null 0
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,221评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 初学js时,发现if()中判断的结果和==的判断结果竟然不太一样诶,真的是非常地有猫病了。下面根据js的6中数据类...
    Coding破耳阅读 372评论 0 0
  • 水平垂直居中 1. 定位 + margin 方法 定位 + margin : auto; 定位 + 负 margi...
    教练我想打野阅读 677评论 0 1
  • 消失的消失了 仿佛从来不曾出现 喧嚷的喧嚷着 仿佛永远不会沉默 闭上眼睛按下快退 故事回到开场前 观众还没到齐 我...
    左语三千阅读 399评论 0 0