作用域题目
2017-05-14 本文已影响16人
AlanV
<script>
// 全局变量是window对象的属性
var a;//此刻a在这里是字符串,即充当windows对象的属性
if( 'a' in window ){
var a = 10;
} else {
var a = 20;
}
// 变式1
if( a in window ){
//在这道题中,先将a提升,但是值留在原地不动,定义了之后开始没有给值,默认为undefined,因此undefined传进来为window的属性,也是true返回10;
var a = 10;
} else {
var a = 20
}
undefined = 123;
console.log( undefined );
// 变式2
var a = 100;
window[ a ] = a;//这个是将a等于100转化为window的100的位置等于100,给window对象添加了索引为a时,有值等于a;a这样子在window就为true了;
if( a in window ){
var a = 10;
} else {
var a = 20;
}
console.log( a );
</script>