<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<script type="text/javascript">
// 在全局作用域当中 带var 和 不带 var的关系
// 区别: 带var的可以进行预解释,所以在赋值的前边执行不会报错;
// 不带var的不能预解释,在前边执行会报错
// console.log(num); // undefined
// var num = 12;
//
// console.log(num2); // num2 is not defined (当前的变量不存在) 报错
// num2 = 12;
// 关系:num2 = 12 -> 相当于给Window增加了一个叫做num2的属性名,属性值是12
// var num2 = 12 ->首先相当于给全局作用域增加了一个全局变量num,不仅如此他也相当于给Window增加了一个属性名num2,属性值为12
// var num = 12;
// console.log(num); // 12
//
// num2 = 12;
// console.log(num2); // 12 window.num2
// var total = 0;
// function fn() {
// console.log(total); // undefined
// var total = 100;
// }
// fu();
// console.log(total); // 0
// var total = 0;
// function fn() {
// console.log(total); // 0
// total = 100;
// }
// fu();
// console.log(total); // 100
// 私有作用域中出现的一个变量不是私有的,则望上级作用域中进行查找,上级没有则继续向上查找,一直找到window,如果Window下也没有?
// 我们是获取值 : console.log(total) 报错了
// 我们是设置值 : total = 100; -> 相当于给Window增加了一个属性名total 属性值为100
function fn() {
console.log(total); // total is not undefined
total = 100;
}
fu();
console.log(total); // 100
// JS中如果不进行任何特殊处理情况下 上边的代码报错,下边的代码都不在执行
</script>
</body>
</html>
网友评论