js斷定IE

var ie=!-[1,];前端

這句話對於多數前端來講都很熟悉,遇到斷定是不是ie瀏覽器就用這個,可是對於由來以及爲何可能沒有深刻了解過。數組

短短6個bytes就作了斷定。這個表達式是利用IE和標準瀏覽器對數組處理的差別性來實現的。可是IE通過這麼多版本的更新這個斷定如今並不可以斷定全部的IE版本(IE9及其以上版本瀏覽器符合標準瀏覽器規範,即IE8及其如下版本瀏覽器是非標準瀏覽器)。直觀的看代碼:瀏覽器

ie8及其如下非標準瀏覽器:object

>>> [1,]co

[object Array][1, undefined]版本

>>> -[1,]ie8

NaNundefined

>>> !-[1,]

true

標準瀏覽器:

>>> [1,]

[1]

>>> -[1,]

-1

>>> !-[1,]

false

綜上:之後能夠直接用!-[1,]這六個bytes斷定IE8及其如下版本的非標準瀏覽器。

相關文章
相關標籤/搜索