javascript 布尔值表达式流程是什么? 10

varonOff=true;for(i=0;i<100;i++){this.onclick=function(){if(onOff){alert(1);onOff=fal... var onOff=true;
for (i=0;i<100;i++){
this.onclick=function(){
if(onOff){
alert(1);
onOff=false;
}else{
aler(2);
onOff=true;
}
}
}

1.请问onOff在if里判断为什么没有表达式,或者表达式是简写的,那简写的表达式是onOff==true吗?

2.那岂不是当它if执行内容以后,onOff值变成了假,if(变为false)就变成判断为假,要这样就永远不会执行else里面的东西了,上面if()里面的判断条件onOff的值应该是随时变动的,也就是说if()每次都会执行if()里面的把onOff变成假再判断为假,而不会执行else里面的了。

3.还有就是在head标签里放window.onload=fn;如果fn()里面有for循环,是不是页面加载完后会在页面一直循环,等待事件的响应?就好像随时待命一样,这岂不浏览器会很累,电脑会很卡;还是载入完后,当用户响应事件后才会获取元素集,但是我看到很多事件都是写在循环获取元素的下面,按理必须先执行循环获取元素集合,再等待响应事件吧,难道是载入完后高手都写window.onload吗?谢谢!就像下面这个例子,页面载入完后for循环不停地找元素等待oDiv的事件发生吗?

window.onload=function aa (){
var oLi=document.getElementsByTagName("li");
var aLi=[1,2,3]
for(var i=0;i<oLi.length;i++){ //页面载入完后它是在不停找元素,等待下面事件响应吗?如果我不点击它会一直找下去吗??
oDiv.onclick=function bb(){
oLi[i].background="red";
alert(aLi[1]);
}
}

}

4.还有就是上面这个例子,我听说function(){}里面的变量是局部变量,也就是说不能被别的函数调用,上面这个例子里aa函数的oLi元素集和aLi变量数组,bb函数这样调用可行吗?

大大的谢谢!!
展开
 我来答
帐号已注销
2015-04-24 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1635万
展开全部
1、if的括号里,一定是一个布尔值,只可以是true或false,但这个布尔值可以是表达式计算结果。你常见的if(a == b)实际上如果a和b是相等的,首先还是变成if(true),如果括号里直接就是if(true),这是很正常的,因为如果if的括号里是true,就执行if段,否则就执行else段。

2、正因为if(true)会执行if段,所以在if段把onOff变成false,以便让它执行else段; 在else段让onOff变成true,如此反复循环,就变成了一下执行if,一下执行esle。

3、window.onload是一个事件,它会在页面中所有元素都加载完成的时候触发这个事件。并不是说浏览器会一直循环等待事件触发,而是浏览器感知你的一切操作,当某个操作进行时,它再去触发这个事件,并执行给这个事件绑定的函数。就好像你告诉百度,“有人回答这个问题就通知你一下”,这个就是一个事件,并不需要你不停的来看看是否有人回答,而是有人回答完之后,百度会去告诉你,而百度也不需要一直看是否有人回答,只需要在我回答的时候,自动感知有人回答,然后再自动去告诉,比如发个通知。

4、函数的作用域是可以嵌套的,aa函数的作用域大于bb函数的作用域,所以bb函数可以用aa函数的,因为它知道它的上级可以给它提供这些变量。但是aa却不能使用bb中的变量,因为它无法预知bb中是否有这个变量,这是比较俗的讲法。实际上js作用域问题是一个很大的问题,在这里根本无法三言两语讲清楚。你要是真想知道,还是专门去多找几篇关于js作用域的博客看看,收获会很大。
更多追问追答
追问
请问可以在if放(false),当它为假才执行if段,为什么必须为真才能执行if段呢?难道为假只能执行else段吗?
请问可以在if放(false),当它为假才执行if段,为什么必须为真才能执行if段呢?难道为假只能执行else段吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式