什么是“-[1;平均值;if(!-[1,]&&!window.XMLHttpRequest)"
what does "-[1, ]" mean in " if(!-[1, ] && !window.XMLHttpRequest)"?
我找到了下面的代码,但我无法理解。
if (!-[1, ] && !window.XMLHttpRequest) {
document.execCommand("BackgroundImageCache", false, true);
}
if(!-[1,])
是什么意思?感谢
这是一个检测旧Internet Explorer的黑客。-[1,]
在现代浏览器中是-1
(所以false
和!
),但在旧IE中是NaN
(否定true
)。返回正确结果的第一个版本是IE9。
这个精确的代码永远不会产生除
false
之外的任何其他内容,因此输入时它是无意义的。我假设这是呈现的输出,并且根据某些服务器端变量的不同,它有时可能会有所不同
由于它使用了window.XMLHttpRequest
,我意识到它也可能是某种糟糕的浏览器检查形式。[1,]
创建了一个数组,但后面的逗号会使数组在Chrome和Internet Explorer中得到不同的处理。Chrome会将其识别为只有一个数字的数组,可以隐式转换为数字,而IE会将其视为包含两个项目的数组,不能转换为数字。
-[1,0]
将在所有浏览器中产生NaN
。-[1]
将在所有浏览器中产生-1
。因此,-[1,]
将在IE中产生NaN
(并因此执行代码),而在其他浏览器中产生-1
(并不执行代码)。
这是一次可怕的黑客攻击。不要用它。
如果您想知道window.XMLHttpRequest
是否有效,请专门测试它,而不是其他任何东西。
这是一个特别糟糕的代码:
-[1, ]
结果为数字-1。
CCD_ 20将始终为假。
由于[]表示一个数组,这是不好的,因为如果该数组中有多个值,-
会给你一个NaN。
相关文章:
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 尝试过滤“;引号"基于'"类别“;使用流星&mongo
- 替换“&"与&体内
- 删除"在JavaScript控制台中打印数组时
- 什么是“-[1;平均值;if(!-[1,]&&!window.XMLHttpRequest)"
- Typeahead.js-特殊字符返回为“”&#230"等
- 使用“&"以及“+"在Querystring中
- 我怎么能在一个URL中有两种类型的参数,其中一种以“”开头#"而另一个以“0”开头&"并且不替
- "实体名称必须紧跟在'&'在实体引用中&”;
- 为什么var c=“;a“||"b”;返回c=“;a“;并且var c=“0”;a“&&"
- 排除将双引号(")转换为"
- 编码"在Javascript onclick事件中被视为真正的双引号-为什么
- "闭合的“;属性异常返回“;window.open”;在JavaScript&歌剧
- Ajax帖子不发布“&"信
- 如何删除"在javascript中从我的Json
- 如何逃离或替换“&"在xml文件中使用jQuery
- 如何改变“;添加到购物车”"添加到愿望列表”&"将该产品“;单击时按钮边框颜色
- HTML"不转换为“;
- 为什么隔离范围"&"未按照angularJs的指示与controllerAs一起工作
- 是否有一种方法可以确定指令范围“&"项已设置为某个内容