关于if(xx)和==判断的那点事

前言

  • 本文是对于个人学习的总结,如有不对,请指出。
  • 本文有些可能是自己的看法,所以仅供参考

关于if

  • if语句是编程语言最常用的语句,js也是一样
    if(xx){ true statement;}else{ false statement;}
    这是最常见的语句
  • (xx)一般会有两种情况
    一种是xx本身就是布尔值,也就是true和false,
    还有一种就是,xx是个表达式,
  • 若是本身就是布尔值,那么按类输出,
    若是表达式,那么js解释器就会强制将其转换成布尔类型
  • 如何转化呢?
    -- undefined和null的类型会被转换成false
    -- number(数字类型),+0、-0、NaN这三种会被转化成false
    其它的数字都会转化成true
    -- string(字符串),空字符串('')是false,其它都是true
    -- object(对象),所有的对象都会被转化成true
  • 转化完成以后,也是一样按类输出,true就输出true statement,
    false就输出false statement

关于==

  • == 两个等号是近似相等的意思,===三个等号才是严格等于
    区别在于,==两个等号,会转化类型,三个等号不会,类型不一致就是不对的
  • 那么两个等号,js会如何处理呢
    -- 首先undefined会被转化成NaN,null会被转化成0
    但是记住js明确规定了一点,undefined==null ,这是正确的
    所以两个等号两边是这个的时候,不用考虑转化,就是对的
    -- 对于布尔值,true转化成1,false转化成0
    -- string(字符串),“abc”这类的纯英文,会被转化成NaN
    “123”,这类数字型的字符串,会被转化为数字
    -- 对于object(对象),因为对象理由属性,
    会先调用valueof属性,获取结果再判断,
    如果没有再调用tostring,获取结果再判断
  • 转化完成之后在进行判断,看两边是否相等

总结

  • 我的感觉就是,if最主要的就是判断条件是否成立,来决定如何输出
  • ==最主要的就是看能否转成数字进行比对,数字大小总是好比对些
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script...
    oWSQo阅读 1,818评论 0 1
  • 变量 声明变量 命名变量区分大小写的语言第一个字符是字母或下划线_,数字不能作为第一个字符字符必须是字母,数字或者...
    flyingtoparis阅读 834评论 0 0
  • 是否你偶尔会想自己已经错过了很多东西,你没有在马云成功之前和他做朋友,也没有认世界首富做干爹,一直都在错过,...
    热心小姐姐阅读 391评论 0 1
  • 我想说,现在不是年少轻狂的年纪,虽然脸上并没有任何痕迹,但是如果懂生活那么就来个质的飞跃吧。 有些事当你想起来做的...
    AXDaRen阅读 414评论 0 1