试问:在控制台打印person1、person2结果是什么?
var person2={
name:"张三",
age:21
}
//页面加载完成执行的事件
window.onload=function(){
var person1={
name:"李四",
age:18
}
}
打印结果:在控制台中发现person1这个变量不存在
原因:在页面加载完成后,全局域例并没有找到person1的声明
window.onload表示页面加载完成:
1、DOM元素加载完成:所以我们可以访问到页面中所有的DOM :document.body、document.body.innerHtml
2、页面中引用的资源文件也已经加载完成:图片、css、js、mp3、mp4。。。
注意:页面有没有加载完成,和一个变量能否访问没有任何关系
如何判断一个变量能否被访问?
知识点:词法作用域
1、首先查看当前作用域
2、查看当前作用域的上级
3、......一直找到全局作用域
浏览器如果没有处于调试状态,那么当前作用域就是全局作用域
如果浏览器处于调试状态,那么当前作用域就看断点的位置