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及其如下版本的非標準瀏覽器。