本文通过具体代码示例,演示如何利用JavaScript的反射机制遍历window对象的所有属性。重点解析了使用三个等号(===)进行值查找时,类型严格匹配的重要性,并对比了两个等号(==)在类型转换失败时的行为差异,帮助开发者避免常见的类型比较错误。
JavaScript 反射与 Window 对象遍历示例
代码如下:
<html>
<head><title>JS反射</title>
<script type="text/javascript">
/*
/* 反射
*/
function forwindow() {
for (var i in window) { /* 循环遍历window对象的所有属性
if (window[i] === "wsenmin") { /* 使用三个等号,先比较数据类型
return i; /* 如果类型不同则不予比较,自动跳过该属性
} /* 只有当数据类型相同时,才会进一步比较值
}
}
var name = "wsenmin";
var trimName = forwindow();
alert(trimName);
</script>
</head>
<body>
</body>
</html> /* 两个等号直接比较值,但是在类型无法相互转换时会报错
window[i] === "wsenmin1"
window[i] == "wsenmin1"
大家可以相互比较一下上述代码的行为差异