if以及==的判断

  • if(xx){} 会输出什么
    • if(number){}, 当number是0或者NaN为false,其他为true
    • if(string){}, 空字符串为false,其他为true
    • if(null){}, 输出false
    • if(undefined){}, 输出false
    • if(boolean){},按照布尔值判断
    • if(object){}, 输出true
    • if(Symbol){}, 输出true
  • ==,做相等运算时,一般都要把数据类型转换成数字类型,或者转化为相同的数据类型。
    • 如果两个值类型相同,则执行严格相等的运算
    • 如果两个值的类型不同
    1. 如果一个是null,一个是undefined,那么相等
    2. 如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
    3. 如果一个值是true/false则将其转为1/0比较
    4. 如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
    5. 其它就不相等了
    • 其他类型转化为数字类型使用Number()函数,规则如下:
      1. 如果是Boolean值,true和false将分别被转换为1和0。
      2. 如果是数字值,只是简单的传入和返回。
      3. 如果是null值,返回0。
      4. 如果是undefined,返回NaN。
      5. 如果是字符串,遵循下列规则:
        5.1 如果字符串中只包含数字(包括前面带加号或负号的情况),则将其转换为十进制数值, 即"1"会变成1,"123"会变成123,而"011"会变成11(注意:前导的零被忽略了);
        5.2 如果字符串中包含有效的浮点格式,如"1.1",则将其转换为对应的浮点数值(同样,也会忽略前导零);
        5.3 如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整数值;
        5.4 如果字符串是空的(不包含任何字符),则将其转换为0;
        5.5 如果字符串中包含除上述格式之外的字符,则将其转换为NaN。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,675评论 0 13
  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 8,334评论 0 7
  • 什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script...
    oWSQo阅读 5,763评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,337评论 19 139
  • 【素炒意面】 食材:螺旋意面 四季豆 榨菜 调料:植物油 味极鲜 芝麻 素香菇酱 方法: 1、四季豆洗净切斜丝,榨...
    素之味阅读 2,944评论 0 0