2018-05-12

对于if(xxx)中的类型转换

对于if(xxx)中的括号的部门会强制转换成boolean值。

  • undefined ==> false
  • null ==> false
  • boolean ==>直接判断
  • string ==> 除了空字符串外,都是true
  • number ==> +0、-0、NaN为fasle,其他都为true
  • object ==> 为true。

对于==中的类型转换

对两边是否判断相等的==运算符,js会帮我们做一些类型转换。

  • 一个为null,一个为undefined,两个相等。
  • 一个为number,一个为string,将string转换成number。
  • 一个为boolean,一个为其他,则将Boolean转换成数字,进行比较,true为1,false为0
  • 一个为object,其他值为字符串或者数字。先调用object中的valueOf()方法获得结果,若未定义,再调用toString()
    方法获得结果。
  • 其他都不相等。

以上可以连续转换,比如,'1'==true的结果为true原因是,先将true转换成数字,为1,则为'1'==1再将字符串1转换成数字1,而后为相等。

基本上就是,除了object是调用valueof和tostring来获得结果外,都是将类型转换成数字来进行比较

对于各种类型转换成数字的

  • undefined ==> NaN
  • Null ==> ,
  • boolean==>true为1,false为0
  • string==>空字符串和空格字符串为0,非纯数字字符串为NaN,数字字符串为数字。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,221评论 0 13
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,082评论 19 139
  • 什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script...
    oWSQo阅读 1,834评论 0 1
  • 世上之人,谁不曾想在岁月里洒脱行走,优雅老去呢?可是在生活里,只有一定年纪了才会明白,面对生活的杂碎庸烦,能够...
    稻香何处阅读 195评论 0 0