IE判斷檢測 jQuery 在 1.9 版本之前,提供了一個瀏覽器對象檢測的屬性 使用率極高。但是在版本發佈之後,大家鐘愛的這個屬性被無情的拋棄了。大家開始著手尋找.browser 的替代方案。於是各種利用 IE bug 的檢測方法被搜了出來: // IE 678 最短方法 var ie = !-[ ...
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"
位運算的神奇應用
toggle 兩個值
var a = 10 , b = 20 , x = 10; if( a === b){ a = c; }else if( a === c){ a = b; }比如 下麵幾種 反向判斷賦值 如果 a == b 那就讓 a = c 如果 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只要能把小數位幹掉,目的就達到了