博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS中循环逻辑和判断逻辑的使用实例
阅读量:7254 次
发布时间:2019-06-29

本文共 1401 字,大约阅读时间需要 4 分钟。

源代码见:

&&和||的理解

a || b:如果a是true,那么b不管是true还是false,都返回true。因此不用判断b了,这个时候刚好判断到a,因此返回a。

   如果a是false,那么就要判断b,如果b是true,那么返回true,如果b是false,返回false,其实不就是返回b了吗。

a && b:如果a是false,那么b不管是true还是false,都返回false,因此不用判断b了,这个时候刚好判断到a,因此返回a。

   如果a是true,那么就要在判断b,和刚刚一样,不管b是true是false,都返回b。

判断逻辑,因为重置按钮需要清空之前的style,这里用if语句也可以,但是比较繁琐,所以采用了与门操作符,好处就是代码量比较少。

this.index === btns.length - 1 && (content.style.cssText = "");
循环逻辑,因为5个按钮的功能相似,故通过循环的到每个按钮的属性,并改变其对应的值。将 attribute及其对应的 style分别用数组储存
1 function changeAttr(elem, attr, sty) { 2      elem.style[attr] = sty; 3  } 4      window.onload = function () { 5          var content = document.getElementById('content'); 6          var btns = document.getElementsByClassName("btn"); 7          var styles = ["200px", "200px", "red", "none", "block"]; 8          var attrs = ["width", "height", "background", "display", "display"]; 9          for( var i = 0; i < btns.length; i++){10             btns[i].index = i;11             btns[i].onclick = function () {12             this.index === btns.length - 1 && (content.style.cssText = "");13             alert(this.index);          alert(i);//514             changeAttr(content, attrs[this.index], styles[this.index]);//this.index改为i时功能无法实现,由于触发onclick事件时,i已经完成遍历值为515             }16          }17       }

对于上述代码中的红色问题,可用匿名函数(闭包)将每次遍历的 i 值传入函数,使其值始终保持在内存

1  for(var i=0;i

 

转载于:https://www.cnblogs.com/embrace-ly/p/10547401.html

你可能感兴趣的文章
log4j配置
查看>>
安装程序无法创建新的系统分区
查看>>
SpringMVC返回json的问题
查看>>
[LOJ] 分块九题 1
查看>>
DOM
查看>>
C++的特殊工具与技术
查看>>
性能测试方案和性能测试报告小结
查看>>
Springmvc的原理和业务处理
查看>>
【Android】一步实现防重复点击问题
查看>>
网络爬虫的基本实现步骤
查看>>
ajax
查看>>
POJ 2777 线段树
查看>>
python的十进制与任意进制的转换
查看>>
HTTP协议中GET和POST方法的区别
查看>>
malloc calloc 和 realloc
查看>>
ATL中对IDocHostUIHandler的封装
查看>>
python - work4
查看>>
MaskedTextBox
查看>>
开源许可协议简介
查看>>
localeCompare() 方法实现中文的拼音排序
查看>>