JavaScript 的一些SAO操作

作者: 1194b60087a9 | 来源:发表于2019-05-20 17:15 被阅读12次

    IE判断检测

    jQuery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 .browser;使用率极高。但是在 1.9 版本发布之后,大家钟爱的这个属性被 jQuery 无情的抛弃了。大家开始着手寻找.browser 的替代方案。于是各种利用 IE bug 的检测方法被搜了出来:

    // IE 678 最短方法
    var ie = !-[1,];

    解析 :
    在标准浏览器下
    false

    IE 6 7 8 下:
    true

    拆解步骤

    /* IE678 */ [-1,] //[object Array] [-1, undefined] 逗号后位置初始化为undefined未省略 2 -[-1,] //NaN /* 非IE */ [-1,] // [-1] 省略了 , 之后空位 1 -[-1,] // 1 隐式计算 先转化为number然后进行 --取反


    当然还有很多方式,这里稍微列举一下

    var ie = /*@cc_on!@*/false var ie//@cc_on=1 var ie = '\v'=='v' var ie = !+"\v1"

      var isIE = function(ver){
                  var b = document.createElement('b')
                  b.innerHTML = '<!--[if IE ' + ver + ']><i></i><![endif]-->'
                  return b.getElementsByTagName('i').length === 1;
                }
    

    位运算的神奇应用

    toggle 两个值

    比如 下面几种 反向判断赋值 如果 a == b 那就让 a = c 如果 a == c 那就让 a = b

        var a = 10 , b = 20 , x = 10;
        if( a === b){
            a = c;  
        }else if( a === c){
            a = b;
        }
    

    我们尝试一行代码解决这个问题吧!!!

            x = a ^ b ^ x; //按位异或
    

    按位异或计算
    真^假=真
    假^真=真
    假^假=假
    真^真=假'


    随机HEX16进制随机颜色

    function randomColorU(){
         colorStr = "#"+("00000"+(Math.random()*0x1000000<<0).toString(16)).slice(-6); 
    }
    
     function randomColor(){  
      var colorStr=Math.floor(Math.random()*0xFFFFFF).toString(16).toUpperCase();  
      return"#"+"000000".substring(0,6-colorStr)+colorStr;  
    }  
    

    向下取整怎么写?

        parseInt(15.5);   //15
        Math.floor(15.5); //15
        15.5 >>> 0;       //15
        15.5 >> 0;        //15
        15.5|0;           //15
        ~~(15.5);         //15
    

    只要能把小数位干掉,目的就达到了,多年编程经验,今年1月整理了一批2019年最新WEB前端教学视频,不论是零基础想要学习前端还是学完在工作想要提升自己,这些资料都会给你带来帮助,从HTML到各种框架,帮助所有想要学好前端的同学,学习规划、学习路线、学习资料、问题解答。只要加入WEB前端学习交流qun:296,212,562,即可免费获取,学习不怕从零开始,就怕从不开始。

    相关文章

      网友评论

        本文标题:JavaScript 的一些SAO操作

        本文链接:https://www.haomeiwen.com/subject/huflzqtx.html