zoukankan      html  css  js  c++  java
  • 关于JavaScript中的==与!的转换问题

    最近遇到了一道很有趣的JavaScript试题,感觉很有趣。记录一下免得以后面试遇到

    题目是:

    console.log([]==![],{}==!{},[]==!{},{}==![])
    

    这道题考察的主要是==号的隐式转换,

    对象无论在有没有数据的情况下都为true,所以当console.log({}!{})时相当于true!true所以结果为false。

    当用双等号判断[]![]时是按照ToNumber算法来转换的,空数组[]用ToNumber算法转换成0也就是false,而!运算符是使用ToBoolean算法来转换的应为空数组也是对象所以![]转化成!true,所以console.log([]![])时相当于false==false,所以结果为true.

    同样的道理最后console.log({} == ![]),应为对象无论在何种情况下都为true,而![]采用ToBoolean算法来转换,相当于!true,所以结果相当于true == !true结果为false。

  • 相关阅读:
    嵌入式系统引导和启动的流程
    microblaze以太网程序
    机试题
    共模差分 对比
    xilinx XPS无法启动的问题
    FPGA开发流程
    Mel-Frequency-Warping
    微软-黄学东-清华大学FIT楼报告-20170407
    Matlab
    Anaconda安装
  • 原文地址:https://www.cnblogs.com/yuanchao-blog/p/11448107.html
Copyright © 2011-2022 走看看