jquery - 问:我无法理解 jquery 中的“var variable = {”
问题描述
我正在修改另一个人编写的 jQuery 源代码。
但是有一个我无法理解的 var 定义。
我不知道这段代码,所以我用谷歌搜索,但找不到任何答案。
js
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
我想知道这段代码是什么意思。
另外,我想知道语法,例如
js
var isMobile = {
Android: function() {
return window.navigator.userAgent.match(/Android/i);
},
什么Android:
意思?
解决方案
此代码定义一个对象并将其分配给名为“isMobile”的变量。
“Android”是那个对象的一个属性,它的值是一个函数。
该函数对浏览器的用户代理字符串执行测试,以确定它是否在 android 浏览器中运行。
所有这些一起允许其他代码通过调用来确定它是否在 android 浏览器中运行isMobile.Android()
。
或者 iOS 通过调用isMobile.iOS()
,等等。
isMobile.any()
遍历其他函数,调用它们以查看它们中的任何一个是否为真;所以如果你想知道你是否在移动设备上运行,但不关心具体是哪种,你会使用它。
每个浏览器都提供一个名为的变量navigator
,其中包含有关浏览器的信息,包括一个userAgent
属性,该属性提供有关它是哪个浏览器和版本的线索。我正在运行 Brave,这就是我的navigator
样子。我已经突出显示了该userAgent
部分。
userAgent
价值观可能有点令人愤怒。我正在运行 Brave,但 userAgent 字符串提到了 Mozilla、Gecko、Chrome 和 Safari。啊。但那是另外一罐蠕虫。
正如我所说,您可以在此值中查找有关您正在运行的浏览器的线索。为此,此代码使用正则表达式。正则表达式是一种强大的模式匹配语法,用于在字符串中查找子字符串或模式。太复杂了,我无法在这里详细解释,但作为一个例子,表达式userAgent.match(/iPhone|iPad|iPod/i)
正在查找值中的任何单词“iPhone”、“iPad”或“iPod” userAgent
。(斜线之间的部分是模式,尾部i
是一个标志,使搜索不区分大小写。)
推荐阅读
- github - 将我的项目推送到 GitHub 时遇到问题
- expressionengine - 规范 URL 问题
- c++ - 为什么这个指针为空
- google-maps - 没有 javascript 对象的 GeoJSON - 可以绘制 InfoWindow 吗?
- angular - 我不能用量角器自动化 Angular 项目
- javascript - 根据Google表格脚本第一列中合并单元格中的日期从表格锁定异常中删除行
- r - 想要获取基于因子列偏离平均值的值的数据框
- azure-active-directory - 改善公司内部员工的 SSO 体验,同时访问受 Azure AD B2C 保护的消费者应用程序
- sql - 在 SQL 中将 CHAR 转换为 int 会导致错误
- python - 通过python json模块更新json文件无法通过discord命令工作