javascript中对象写在函数外面,函数内部不能使用吗?
为什么javascript中对象写在函数外面,函数内部就不能使用呢?下面这样就可以正常弹出信息...
为什么javascript中对象写在函数外面,函数内部就不能使用呢?
下面这样就可以正常弹出信息 展开
下面这样就可以正常弹出信息 展开
2个回答
展开全部
首先要明白javascript执行的顺序是顺序执行的。从上到下,从左到右。
当界面加载的时候,加载到head下面的script的时候,document.body此时还未加载。所以第一句 body_obj为null.
当执行countBodyChildren方法时候,由于body_obj为null所以报错。
第二个如果在页面未加载完毕调用的时候仍然会报错。原理同上。
所以如果script写在head中,一定记住加上判断界面执行完毕后执行相关代码。常用的。
普通javascript :window.onload=function(){
//todo;
}
Jquery:$(function(){
//todo
});
这样确保dom加载完毕后执行。或者是在页面最后写script。
当界面加载的时候,加载到head下面的script的时候,document.body此时还未加载。所以第一句 body_obj为null.
当执行countBodyChildren方法时候,由于body_obj为null所以报错。
第二个如果在页面未加载完毕调用的时候仍然会报错。原理同上。
所以如果script写在head中,一定记住加上判断界面执行完毕后执行相关代码。常用的。
普通javascript :window.onload=function(){
//todo;
}
Jquery:$(function(){
//todo
});
这样确保dom加载完毕后执行。或者是在页面最后写script。
追问
拜托 我是真的有点不懂
您说的“当界面加载的时候,加载到head下面的script的时候,document.body此时还未加载。”这句话是什么意思?谁先加载?为什么document.body没有加载?你是说每次都是先加载页面信息后加载javascript或者css吗?一篇文档中是不是只能有一个window.onload?希望能告诉我每一个答案。
追答
界面加载是从上到下的
css
script
以上是一般写法。
所以说是先加载head中类容在加载body内容。
此时body还未加载。
理论是一个文档中只有一个window.onload.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询