• js中布尔值为false的六种情况


    一、js中布尔值为false的六种情况

    下面6种值转化为布尔值时为false,其他转化都为true

    1、undefined(未定义,找不到值时出现)

    2、null(代表空值)

    3、false(布尔值的false,字符串"false"布尔值为true)

    4、0(数字0,字符串"0"布尔值为true)

    5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")

    6、""(双引号)或''(单引号) (空字符串,中间有空格时也是true

    注意空数组空对象,负值转的布尔值时都为true

    不同数据类型转化为布尔值的结果
    数据类型 转为true的值 转为false的值
    Boolean true false
    String 任何非空字符串 ''(空字符串)
    Number 任何非零数字值(包括无穷大) 0和NaN
    Object 任何对象 null
    Undefined n/a undefined

    对于0, '', null, undefined, NaN,{}, [], Infinity求布尔值,分别是false false false false false true true true.

    因此我们知道的一点是:对象的布尔值是true,即使是对象{}。

    "!!"将表达式进行强制转化为bool值的运算,运算结果为true或者false。

    例如 array=[1,2,3]      array.num=undefind   !array.num=true   !!array.num=false

    二、出现undefind的中情况

    1、未初始化的变量

    变量未定义 或 变量定义了没有赋值  或者 函数形参未赋值

    2、不返回任何结果的函数的调用结果

    函数return没有值 

    function show(){
       return;
    };
    console.log(show());   // undefined

    函数没有return

    function show(){
                
    };
    console.log(show());  // undefined

    3. 不存在的对象属性或方法

    let favoriteMovie = {
      title: 'Blade Runner'
    };
    favoriteMovie.actors; // => undefined

    4.越界索引数组元素

    const colors = ['blue', 'white', 'red'];
    colors[5];  // => undefined
    colors[-1]; // => undefined

    三、出现null的几种情况

    1.在JS的DOM元素获取中,如果没有获取到指定的元素对象,结果一般是null。

    2.Object.prototype._proto_的值也是null。

    3.在正则捕获的时候,如果没有捕获到结果,默认也是null。

  • 相关阅读:
    Java & PHP RSA 互通密钥、签名、验签、加密、解密
    Spring Cloud:Security OAuth2 自定义异常响应
    Spring Cloud:统一异常处理
    Spring Cloud:多环境配置、eureka 安全认证、容器宿主机IP注册
    Hexo + GitEE 搭建、备份、恢复、多终端
    Spring:AOP面向切面编程
    如何找到适合自己的文档工具?
    比较好玩的工具类合集推荐!!!
    C++11 如何使代码仅执行一次?
    CMake 常用操作有哪些?
  • 原文地址:https://www.cnblogs.com/zjx304/p/9782942.html
Copyright © 2020-2023  润新知