v1 能判斷瀏覽器型別嗎?

2021-09-08 19:48:17 字數 560 閱讀 4352

我在  中看到如此判斷是否是ie,if(!+"\v1")else,請問這個條件判斷的意義是什麼?我在ie8中測試是true,在firefox/chrome/opera中測試是false.能解釋下這個短語瀏覽器是如何解釋的呢?

最佳答案

其實就是利用各瀏覽器對轉義字元"\v"的理解

在ie瀏覽器中,"\v"沒有轉義,得到的結果為"v"

而在其他瀏覽器中"\v"表示乙個垂直製表符(一定程度上相當於空格)

所以ie解析的"\v1" 為 "v1"

而其他瀏覽器解析到 "\v1" 為 "1"

在前面加上乙個"+"是為了把後面的字串轉變成數字

由於ie認為"\v1"為"v1",所以前面的加上加號無法轉變成數字,為nan

其他瀏覽器均能變成 1

再因為js與c語言類似,進行邏輯判斷時可使用數字,並且 0 為 false,其他數字則為true

所以 !1 = false ,於是其他瀏覽器均返回false

js在遇到如下幾個值會返回false:undefined、null、nan,所以ie中 !nan = true

判斷瀏覽器型別

1 2 描述 判斷瀏覽器型別 3 編寫 littleqiang w 4 日期 2016.1.5 5 版本 v1.1 6 78 判斷當前瀏覽型別 9function browsertype else if fieversion 8 else if fieversion 9 else if fiever...

判斷瀏覽器型別

var browser useragent window.n igator.useragent.tolowercase if msie firefox opera chrome netscape d d d.test useragent else if version d d d.safari te...

js判斷瀏覽器型別

現實情況時,有時需要根據瀏覽器型別,進行一些css之類的不同處理。第一種,只區分瀏覽器,不考慮版本 複製 如下 function mybrowser 判斷是否opera瀏覽器 if useragent.indexof firefox 1 判斷是否firefox瀏覽器 if useragent.ind...