众所周知,for循环是编程中必不可少的知识点;那么如何高效的写出循环呢?

我们要先知道for循环的基础样式是由自有变量自增自减和if判组成的;

1             for(条件){
2 执行语句
3 }

而for循环的条件要明确从哪里开始执行?执行到哪里结束?中间的过程是向上还是向下?

假如不理解js基础语法的会犯下面的错误

1                 for (var i = 0; i < 10; i++;) { X 第三个条件是最后的条件所以不需要加“ ;”
2 console.log(i);
3 }

其实除了 “i<10”这个条件,其他条件并不是必须放到小括号里,例如定义a的可以放到放行环上面;定义自增自减的。放到for循环的执行语句里面也是可以的;

后期进行复杂循环会用到这些规则;

1                 var i = 0;
2 for (;i < aLen;) {
3 console.log(a[i] + 'low');
4 i++;
5 }

必须要明白,JavaScript是由上往下执行的,所以如果逻辑上不通的话会报错的。所以还是建议按照基础语法来写。;

执行一遍再回到条件语句里面,判断参数是否满足条件,如果满足继续执行,不满足跳出循环。继续执行下面代码。

这就是for循环的基本逻辑。

由于大部分for循环都是为了遍历某个数组或对象。所以更新出了新的语法。

下边请看栗子:

 1             var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 'a'];
2 var aLen = a.length;
3 function low() {
4 for (var i = 0; i < aLen; i++) {
5 console.log(a[i] + 'low');
6 }
7 return a;
8 }
9
10 function fashion() {
11 for (i in a) {
12 console.log(a[i] + 'fashion');
13 }
14 return a;
15 }

low() 与fashion() 执行结果和逻辑是相同的;但简洁度明显是fashion() 比较高;

看执行结果;

所以如果是遍历某个对象或数组,建议使用第二个函数中的for循环;

js中for循环遍历的写法的更多相关文章

  1. js中的循环

    js中的循环是我们经常要用到的,现在进行一些归纳. 一.javascript种的循环. 1.循环对象 var o = { name: 'Jack', age: 20, city: 'Beijing' ...

  2. js中的数组遍历

    js中的数组遍历是项目中经常用到的,在这里将几种方法做个对比. ! for循环:使用评率最高,也是最基本的一种遍历方式. let arr = ['a','b','c','d','e']; for (l ...

  3. java和js中for循环的区别

    java中for循环,先执行语句后循环 for (int i=1;i<10;i++){ for(int b=1;b<=i;b++){ System.out.print(b+"*& ...

  4. js中的循环语句

    js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) {    //statements;} var a=1,b=0; whil ...

  5. js中的三种函数写法

    js中的三种函数写法 <script type="text/javascript"> //普通的声明方式 function myFun(m,n){ alert(m+n) ...

  6. js中for循环的研究

    转自:http://blog.csdn.net/lushuaiyin/article/details/8541500 <html> <body> <b><ce ...

  7. HTML+JS中网页跳转的写法

    1.html中使用meta中跳转,通过meta可以设置跳转时间和页面 <head> <!--只是刷新不跳转到其他页面 --> <meta http-equiv=" ...

  8. js中4种遍历语法比较

    前言:本文主要比较for.for-in.forEach和for-of的异同以及优缺点. for for循环是最原始最易理解的循环遍历方式 for(var index = 0;index < ar ...

  9. JS中的循环嵌套 BOM函数

    [嵌套循环特点]                           外层循环转一次,内层循环转一圈              外层循环控制行数,内层循环控制每行元素个数             [做 ...

随机推荐

  1. 【EXP/IMP】问题总结

    为了使测试与生产数据保持一致,只需要导出数据的时候,可以将测试库的表truncate,保留其它如索引,trigger,constraints,grants等不用再重新导. exp时候rows=y,其它 ...

  2. 【Oracle LISTNER】oracle Listener 宕机解决办法

    今天想起了很久没用的oracle库,用plsql尝试连接,发现报超时错误,以为是偶然,多次尝试连接,发现还是超时,于是登录到系统中,查看数据库情况,发现正常查询和修改添加,感觉不是数据库问题,查看监听 ...

  3. dmp文件导入抽取方法

    一.确认dmp文件.oracle客户端和服务端的字符集 (1)dmp文件字符集确认: 使用UE打开dmp文件查看文件第2个和第3个字节内容,这两个字节记录了dmp文件的字符集.如0354,然后用以下s ...

  4. Upload - Labs (下)

    Pass - 11: 1.查看源代码,发现进行了一次对后缀名替换成空格,因此考虑双写绕过, 2.上传成功, 关键代码: $is_upload = false; $msg = null; if (iss ...

  5. REUSE_ALV_FIELDCATALOG_MERGE函数

    今天使用REUSE_ALV_FIELDCATALOG_MERGE函数,就是获取不到fieldcat, 搞了半天才发现,原来参数要全部大写才行!!小写字符就是获取不到,唉,悲哀...

  6. QT串口助手(三):数据接收

    作者:zzssdd2 E-mail:zzssdd2@foxmail.com 一.前言 开发环境:Qt5.12.10 + MinGW 实现的功能 串口数据的接收 ascii字符形式显示与hex字符形式显 ...

  7. mysql忽略表中的某个字段不查询

    业务场景 1.表中字段较多 2.查询不需要表中某个字段的数据 语句如下: SELECT CONCAT(' select ',GROUP_CONCAT(COLUMN_NAME),' from ', TA ...

  8. Bitter.Core系列 十二 :Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore 之 支持的 where 条件表达式

    Bitter.Core 内置了支持大部分的 linq 的条件表达式.基本上符合我们 where 条件所需.Bitter.Core 的支持 表达式内置  扩展 有: EndsWith    在Sql 解 ...

  9. Lambda架构正是这样一种用来处理不能够直接实时计算问题的通用架构

    https://mp.weixin.qq.com/s/BGHOw12iCASJy1pgkYZi3w 当数据处理做不到实时,应该怎么办?

  10. Page not found (404) 不被Django的exception中间件捕捉 中间件

    Using the URLconf defined in config.urls, Django tried these URL patterns, in this order: