• 隐式转换


     

    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
     
  • 相关阅读:
    iOS 9之后Url链接的NSUTF8StringEncoding转码实现
    iOS实现应用更新及强制更新
    Objective-C代码简写
    Mac下使用数据库将Excel数据转换存入.plist
    iOS开发之图片压缩实现
    iOS键盘事件实现、控制
    iOS 轻击、触摸和手势的检测
    使用CocoaPods时遇到 Permission denied 问题
    2016-3-1 Mac下使用Hexo搭建Blog
    2016-3-1 安装Hexo过程中遇到的问题
  • 原文地址:https://www.cnblogs.com/yanghai/p/14082794.html
Copyright © 2020-2023  润新知