JavaScript 的一些SAO操纵

IE推断检测

// 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

只需能把小数位干掉,目标就达到了

    原文作者:小龙
    原文地址: https://segmentfault.com/a/1190000018755191
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞