JavaScript 的一些SAO操作

49次阅读

共计 939 个字符,预计需要花费 3 分钟才能阅读完成。

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
只要能把小数位干掉, 目的就达到了

正文完
 0