Javascript的undefined污染,是指在某些浏览器中,JS undefined可以被重新赋值。
最经典的例子就是臭名昭著的IE6 IE7 IE8,可以说哪里有问题,哪里就有 Microsoft Internet Explorer 6 7 8.
对于Javascript来说,typeof null返回object已引起了不小的争议,而undefined可以重新赋值更是一个无法理解的事情。
在 IE 6-8 中运行以下代码,运行的结果是3,也就是说本应该只读的undefined被修改污染了。
不过不用担心,除了 IE 6 7 8 以外,现在大多数的浏览器JS解析引擎都已经纠正了这个问题。
<script>
var undefined=3;
alert(undefined);
</script>
|
|