這種寫法是利用各瀏覽器對轉義字符"\v"的理解不同來判斷瀏覽器類型。
在IE中,"\v"沒有轉義,得到的結果為"v"。
而在其他瀏覽器中"\v"表示一個垂直制表符,所以ie解析的"\v1" 為 "v1",而其他瀏覽器解析到 "\v1" 為 "1"。
在前面加上一個"+"是為了把后面的字符串轉變成數字。
由于IE認為"\v1"為"v1",所以前面的加上加號無法轉變成數字,為NaN
其他瀏覽器均能變成 1。
上面是百度查到的答案。
但是下面我測試的時候竟然出現了這樣的問題!
if(!+"\v1"){alert("IE");}else{alert("非IE");}
?
IE下(IE9):
谷歌下:
火狐下:
現在是不是不能通過這個判斷了?個人覺得是這樣的!
將IE的模式改成IE8,就得到我們想要的結果了.
?
這個現在是不是能拿來判斷IE9與IE8呢?- -