zoukankan      html  css  js  c++  java
  • js基础:关于Boolean() 与 if

    最近面试比较多,但每次我问这个问题的时候,答出来的同学并不多

    var a = 0;
    
    if( a) {
         alert(1);  
    }

    这个问题有部分人会答alert(1),   有些人会答不执行。

    结果是不执行的,但答不执行的同学也说不出为什么,他只会说以他的经验,所以在这里我觉得有必要补下js基础知识,js基础好的人可以跳过此博文。

    首先说这个问题之前 我们先回忆下 Boolean();

    Boolean 是个转型函数。即可以传任何值转成 boolean类型, 即返回true 和 false.

    那么什么时候是true , 什么时候是false, 它是有一定规则的。

    我通过一张表来表明此规则。

    数据类型
    转换为true的值
    转换为false的值

    Boolean
    true
    false

    String
    任何非空字符串
    “”

    Number
    任何非0数值
    0和NaN

    Object 
    任何对象
    null

    Undefined
    undefined

    注: Undefined 没有转换为true的值。

    从这里我们一目了然, Boolean(0) 返回的是 false;

    那么当if语句里面没有表达式,只是某个值时 如 if (XXX)  它会自动执行Boolean(xxx)操作,  即 if(XXX) = if(Boolean(xxx))

    所以我们对应上面Boolean的转换规则 ,再结合上面的题,就非常容易理解了。

    这就是 if(0) 会返回false的原因。

  • 相关阅读:
    Java后台获取微信小程序用户信息、openid
    异步上传excel带进度条
    iOS 手机App消息推送功能(后台Java实现)
    Java花样排序
    Java 按页拆分pdf
    Java实现按行拆分pdf
    mac 上将.pem文件转为.pub文件
    strust2的核心和工作原理
    InputStream流转字节数组
    合并InputStream流
  • 原文地址:https://www.cnblogs.com/ck0074451665/p/4311158.html
Copyright © 2011-2022 走看看