每日思考(2020/03/24)

Posted ericzlin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日思考(2020/03/24)相关的知识,希望对你有一定的参考价值。

题目概览

  • 请写出唤醒拔打电话、发送邮件、发送短信的例子
  • 如何消除transition闪屏?
  • 对js隐式类型转换的理解

题目解答

请写出唤醒拔打电话、发送邮件、发送短信的例子

<a href="tel:176xxxxxxxx">一键拨打号码</a>
<a href="mailto:hzl@163.com">一键发送邮件</a>
<a href="sms:176xxxxxxx">一键发送短信</a>

如何消除transition闪屏?

.css { 
    -webkit-transform-style: preserve-3d; 
    -webkit-backface-visibility: hidden; 
    -webkit-perspective: 1000; 
} 

对js隐式类型转换的理解

  • 等于判断:是会去先转为相同数据类型,再判断的。Array -> String -> Number -> Boolean 有顺序的

    0 == ‘0‘;   // true,转为 0 == 0
    0 == [];    // true,转为 0 == ‘‘ 再转 0 == 0
    ‘0‘ == [];  // false,转为 ‘0‘ == ‘‘
    ‘0‘ == true  // false,转为 0 == true 再转 false == true
    
  • 大小判断:也是要先转为相同数据类型再比较的

    ‘1‘ > ‘-1‘;   // true,实则为 1 > -1,反例 ‘1‘ > ‘1.1‘ 为 false
    ‘a‘ > ‘A‘;    // true,实则为 97 > 65,反例 ‘a‘ > ‘b‘ 为 false
    ‘a‘ > -1;     // false,这里不知是不是转成了 NaN > -1
    ‘a‘ > ‘‘;     // true,这个也不知是不是 97 > undefined
    
    [-1] > 0;    // false,实为 -1 > 0
    [-1] > ‘‘;   // true,实为 ‘-1‘ > ‘‘
    
  • undefined、null 和 NaN

    undefined == undefined;  // true
    undefined <= undefined;  // false,怀疑是 0 <= undefined 在比较
    
    null > 0;     // false
    null == 0;    // false
    null >= 0;    // true
    
    NaN > -1;     // false,NaN 基本无法被比较
    NaN  == NaN;  // false
    
  • 入参类型转换:比如 Number 和 Math 相关的方法,都会进行数字化转化等

  • 运算时类型转换

    +‘ 014‘   // 14
    +‘0x12‘   // 18
    
    1 + ‘14‘    // ‘114‘
    1 + ‘0x12‘  // ‘10x12‘
    1 + +‘14‘   // 15
    ‘14‘ + 1    // ‘141‘
    
    1 + [1, 1];     // ‘11,1‘
    1 + {};         // ‘1[object Object]‘
    
    1 + null;       // 1
    1  +undefined;  // NaN
    
    ++‘14‘    // ReferenceError
    
    Infinity+Infinity;      // Infinity
    -Infinity+(-Infinity);  // -Infinity
    Infinity+(-Infinity);   // NaN
    
    +0+(+0);     // 0
    (-0)+(-0);   // -0
    (+0)+(-0);   // 0
    

以上是关于每日思考(2020/03/24)的主要内容,如果未能解决你的问题,请参考以下文章

一个类型思考了 8 年,依旧是最好的! | 每日趣闻

每日思考(2019/12/9)

每日思考(2019/12/29)

源哥每日一题第十五弹 poj 1190 关于深搜减枝以及对于阅读代码的思考

markdown 每日片段

每日思考记录(11)