zoukankan      html  css  js  c++  java
  • JavaScript 的一些SAO操作

    IE判断检测

    jQuery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 .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,c=10;

    if(a===b){

      a=c;

    }else if(a===c){

      a=b;

    }

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

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

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

     


     

    随机HEX16进制随机颜色

    //方法1

    function randomColor(){

      colorStr="#"+("00000"+(Math.random()*0x1000000<<0).toString(16)).slice(-6);

    }

    //方法2

    function randomColor(){

      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

    只要能把小数位干掉,目的就达到了。

    本文作者:潭州学院海牙老师

  • 相关阅读:
    2018 ACM 网络选拔赛 徐州赛区
    2018 ACM 网络选拔赛 焦作赛区
    2018 ACM 网络选拔赛 沈阳赛区
    poj 2289 网络流 and 二分查找
    poj 2446 二分图最大匹配
    poj 1469 二分图最大匹配
    poj 3249 拓扑排序 and 动态规划
    poj 3687 拓扑排序
    poj 2585 拓扑排序
    poj 1094 拓扑排序
  • 原文地址:https://www.cnblogs.com/ifworld/p/7638511.html
Copyright © 2011-2022 走看看