zoukankan      html  css  js  c++  java
  • 隐式转换

     

    1
    console.log(1"2"+"2");做加法时要注意双引号,当使用双引号时,JavaScript认为是字符串,字符串相加等于字符串合并。

    因此,这里相当于字符串的合并,即为122.

    2.

     
    1
    console.log(1+ +"2"+"2");

    第一个+"2"中的加号是一元加操作符,+"2"会变成数值2,因此1+ +"2"相当于1+2=3.
    然后和后面的字符串“2”相合并,变成了字符串"32".

    3.

     
    1
    console.log("A""B"+"2");

    "A"-"B"的运算中,需要先把"A"和"B"用Number函数转换为数值,其结果为NaN,在剪发操作中,如果有一个是NaN,则结果是NaN,因此"A"-"B"结果为NaN。
    然后和"2"进行字符串合并,变成了NaN2.

    4.

     
    1
    console.log("A""B"+2);

    根据上题所述,"A"-"B"结果为NaN,然后和数值2进行加法操作,在加法操作中,如果有一个操作数是NaN,则结果为NaN。

    ----------------------------------再来一题--------

    var test=new Boolean(); //没有内容就是undefined,这个就是false

    var test=new Boolean(0); //0就是false,1是true

    var test=new Boolean(null);//null跟undefined一样,都是false

    var test=new Boolean("");//字符串里面有内容的话才是true,没有内容就是false

    var test=new Boolean(NaN); //NaN是一种数值类型,是false

    总结: 对象 无初始值 或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false

    -----------------再来一题----------------

    console.log(([])?true:false); // 没有 == 时,用Boolean, Boolean([])--> true; (true) ? true : false;
    console.log(([]==false?true:false)); // 有 == , 用Number。Number([])--> 0,false --> 0;(0 == 0) ? true : false;
    console.log(({}==false)?true:false);// 还是一样,有 == , 用Number。 Number({})--> NaN, false --> 0;(NaN == false) ? true : false;
     
    Boolean([]); //true
    Number([]); //0
    Number({}); // NaN
    Number(false); //0
     
  • 相关阅读:
    监控LVS
    技巧:结合Zabbix与SNMP监控嵌入式设备
    Vmware Exsi使用简要说明
    (转)Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)
    Linux系统下减少LV(逻辑卷)容量
    Linux系统下增加LV(逻辑卷)容量 、Linux系统下减少LV(逻辑卷)容量
    yarn命令删除job
    mr自定义排序和分类
    mr利用shuffle阶段来实现数据去重的功能
    hadoop如何使用第三方依赖jar包(转载)
  • 原文地址:https://www.cnblogs.com/yanghai/p/14082794.html
Copyright © 2011-2022 走看看