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

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

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

  • 相关阅读:
    Android2.3.7源码结构分析
    【开源推荐】AllJoyn:打造全球物联网的通用开源框架
    Ubuntu12.04安装JDK6
    ubuntu12.04升级后找不到共享目录
    Windows Embedded Compact 7新特性
    Windows Embedded Compact 2013 安装体验
    Windows CE,你妈吗喊你在多核上玩玩
    April Fools Contest 2017 C
    April Fools Contest 2017 B
    April Fools Contest 2017 A
  • 原文地址:https://www.cnblogs.com/ifworld/p/7638511.html
Copyright © 2011-2022 走看看