JavaScript 如何获取UA
核心
获取用户浏览器/代理设备,这个是属于BOM部分的
主要考察对 navigator
的理解
代码
封装一个 browser() 方法
为了方便使用,这里创建一个方法来返回浏览器的检查结果。返回结果包含有如下属性:
- webkit:webkit 版本号。如果浏览器为非 webkit 内核,此属性为 undefined。
- chrome:chrome 浏览器版本号。如果浏览器为 chrome,此属性为 undefined。
- ie:ie 浏览器版本号。如果浏览器为非 ie,此属性为 undefined。暂不支持 ie10+
- firefox:firefox 浏览器版本号。如果浏览器为非 firefox,此属性为 undefined。
- safari:safari 浏览器版本号。如果浏览器为非 safari,此属性为 undefined。
- opera:opera 浏览器版本号。如果浏览器为非 opera,此属性为 undefined。
- 新版本webkit 内核
// 浏览器检查结果
function browser() {
var ua = navigator.userAgent;
var ret = {},
webkit = ua.match( /WebKit\/([\d.]+)/ ),
chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
ua.match( /CriOS\/([\d.]+)/ ),
ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
firefox = ua.match( /Firefox\/([\d.]+)/ ),
safari = ua.match( /Safari\/([\d.]+)/ ),
opera = ua.match( /OPR\/([\d.]+)/ );
webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
ie && (ret.ie = parseFloat( ie[ 1 ] ));
firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
safari && (ret.safari = parseFloat( safari[ 1 ] ));
opera && (ret.opera = parseFloat( opera[ 1 ] ));
return ret;
}
browser()
更多面试题
如果你想了解更多的前端面试题,可以查看本站的WEB前端面试题 ,这里基本包涵了市场上的所有前端方面的面试题,也有一些大公司的面试图,可以让你面试更加顺利。
面试题 | ||
---|---|---|
HTML | CSS | JavaScript |
jQuery | Vue.js | React |
算法 | HTTP | Babel |
BootStrap | Electron | Gulp |
Node.js | 前端经验相关 | 前端综合 |
Webpack | 微信小程序 | - |
这些题库还在更新中,如果你有不错的面试题库欢迎分享给我,我整理后放上来;人人为我,我为人人,互帮互助,共同提高,祝大家都拿到心仪的Offer!