zoukankan      html  css  js  c++  java
  • javascript中的true和false

    今天遇到一个问题,执行下面的代码返回true还是false?请说明理由

    console.log([] == ![])

    在浏览器中运行了一下,发现结果是true。为什么会这样呢?于是查找了相关的资料。

    在javascript中0,"", null, unbdefined,NaN,false 为false,其他为true

    if(0 || "" || null || undefined || NaN || false) {
      console.log("true")
    }else{
      console.log("false")
    }

    打印结果为false

    特别的,当[]与==或者!=进行使用时,被当作""来进行处理;一个非null或者undefined的对象(包括[])用在布尔表达式中,会被作为true来进行处理。因此![]的结果为false。则[]==![]等价于""==false,因此结果为true。

    下面代码进行验证:

    console.log([]=="") //打印true,说明[]与==使用时被当作""来处理
    if([]==false) console.log("false") //打印false,说明[]与==使用时是false
    if([]) console.log("true") //打印true,说明在逻辑运算中[]被当作true来处理
    console.log(![]) //打印false
  • 相关阅读:
    随机数测试
    往xml中更新节点
    Spring学习之代理
    SpringMVC基本配置
    Hibernate映射一对一关联关系
    成员变量的定义与使用
    面向对象三大特性
    请用心“品尝”网络电视精灵
    汽车租赁系统
    JSP 甜点
  • 原文地址:https://www.cnblogs.com/fengxm/p/4112229.html
Copyright © 2011-2022 走看看