zoukankan      html  css  js  c++  java
  • 关于隐士类型转化的问题

    一: 求表达式   ! + [ ] + [ ] + ! [ ]  的值是多少;

           ! [ ]              ! 后转化成boolean,先[ ].toString() => 空串;  再将空串转boolean 为false,最终true;

              + [ ]           加号两边不是字符串或数字,会将两边变成字符串或数字,因为前面没有,默认转成数字,[ ]转后是0; 

            +    如果前面有字符串,转化成字符串

                  转化成是  ! 0 + ' ' + !false  

                  优先级: !高于+; 

                 +运算两边的转化问题:字符串有先; 不同类型一旦一方有字符串 ,则另一方转化成字符串,如果没有字符串,则双方都转化成数字3 + [ ];

                 引用值转化成原始值自动调用自身的toString方法;  [1, 2,  3].toString()  ==> '1, 2, 3'  { }.toString( ) ==>  "[object Object]"

    二: 求表达式   [ ] == false  的值是多少// true;    if( [ ]) { console.log(111) }  能输出吗?//能;为什么是false还能打印呢?

             == 两边的值有引用值时候,先把引用值转化成原始值,   

             == 两边的数据类型不一致时候,都要转化成number类型     

  • 相关阅读:
    Upgrading CentOS 6 to CentOS 7
    redis主从同步错误处理
    【linux】free命令中cached和buffers的区别
    服务器TIME_WAIT和CLOSE_WAIT区别及解决方案
    msyql 主从切换
    MySQL主从同步报错1507
    MYSQL SHOW 用法
    NGINX中的proxy_pass和rewrite
    Web服务器Nginx多方位优化策略
    operator重载运算符
  • 原文地址:https://www.cnblogs.com/dangdanghepingping/p/10132484.html
Copyright © 2011-2022 走看看