We hear a lot about loops, especially for loops. So what, in fact, are they? They’re just pieces of code that repeat the same commands several times, until you reach a desired conclusion, without getting you bored out of your mind, repeating your code. This is how we JavaScript guys do it.

Syntax

You will definitely have to know the syntax of for loops and that goes like this:

1 for ([initialization]; [condition]; [final-expression]) statement

You’ll see in the examples how each of these clauses is translated into code. So let’s start right away.

Using simple for loops

The most typical way to use for loops is counting. You just need to tell the loop where to start, where to finish, and with what pace to count. This is how the code goes for counting and printing in the screen odd numbers from one to ten:

1 for (var i = 1; i < 10; i+2) {
2     console.log(i);
3 }

According to the syntax structure we gave you above, you can now easily distinguish that we have first declared and initialized the variable with the value 1. We have set the condition, which in our case is to not count odd numbers greater than 10, and the final one is the pace, and since the two closest odd numbers only differ by 2 the final expression is i+2. Notice that we start the loop with an odd number.

Removing for loop’s clauses

One way to put for loops in good use would be to optimize them, by removing the expressions.Each one of them can be omitted, or you can even omit them all. We will be using the same code of the example above, only we’ll modify it according to the thing we want to show you, so that you can draw the differences and understand it more. Firstly, we’ll show you when and how can you remove the initialization expression. Have a look at the code to see how it changes:

1 var i = 1;
2 for (; i < 10; i+2) {
3     console.log(i);
4 }

You will definitely notice that we have removed the initialization expression, but the variable is initialized outside the loop before we write the code for the loop. Also what’s important here is that the place where the expression we removed was is still there, even though it’s now empty. It’s not correct to remove the semicolon saving that space.

Now it’s time to show you how to use a for loop with all three blocks removed. This is the code:

1 i=0;
2 for (;;) {
3     if (i > 3) break;
4     console.log(i);
5     i++;
6 }

You are obliged to declare an initialize the variable before writing the rest of the loop’s code. If you don’t want to put a condition or a way to get out of the loop, you would be building an infinite loop. But if this is not your intention then you will have to put a condition and an expression that changes the value of the variable, as we have done in the previous code snippet.

for loops and break;

If you were careful in watching the code snippets above you will see something that we did not explain: the expression break;. That expression is used to jump out of the loop, which means that it takes the command right after the loop, without executing the rest of it, but instead doing whatever code is next. Here’s an example of how you can use it:

1 var text = ""
2 var i;
3 for (i = 0; i < 10; i++) {
4     if (i == 3) {break;}
5     text += "The number is " + i + "<br>";
6 }

This code snippet prints out the value of the i variable, and increments it by one. When the value of i reaches 3, it breaks out of the loop. That is how the break; expression operates.

for loops and continue;

The continue; expression is similar to break; only this one only breaks out of the current iteration, and into the next one, not necessarily out of the loop. Here’s the modified example:

1 var text = ""
2 var i;
3 for (i = 0; i < 10; i++) {
4     if (i == 3) {continue;}
5     text += "The number is " + i + "<br>";
6 }

Instead of break; we have used continue; and the difference is that the next iteration to be executed is not the one after the loop, it’s the one after the iteration containing continue;.

for…in loops

The for...in loops are a way of iterating only the properties of different objects.It’s sytax is like this:

1 for (var variable in objectExpression) {statement}

Any expression that evaluates to an object can be used as objectExpression, and this object’s properties are the ones to be iterated. On each iteration, the property names are assigned to variables, and then the statement is executed.See the example below:

1 var myObj = {a: 1, b: 2, c: 3},
2     myKeys = [];
3   
4 for (var property in myObj) {
5     myKeys.push(property);
6 }
7   
8 myKeys;
9  
10 //['a','b','c'];

Note that the properties’ values are actually strings, so whatever action you want to do with, or on them in the statement block, you will have to think of them as such.

Using for with an empty statement

The awesome part about JavaScript is that almost every modification of the code leads you somewhere useful. That is the case with the following code, which we’d like you to see first and discuss later:

1 function showOffsetPos (sId) {
2  
3     // initialization
4     var nLeft = 0, nTop = 0;
5  
6     // condition
7     for (var oItNode = document.getElementById(sId);
8         // final-expression
9          oItNode;
10          nLeft += oItNode.offsetLeft,
11          nTop += oItNode.offsetTop,
12  
13           // empty statement
14          oItNode = oItNode.offsetParent) ;
15  
16     console.log("Offset position of \"" + sId + "\" element:\n left: "
17         + nLeft + "px;\n top: " + nTop + "px;");
18 }
19  
20 showOffsetPos("content");

This loop calculates the offset position of a node in the final-expression section, therefore making the use of a statement block useless, so the empty statement is used instead.

Download the source code

This was an example of for loops in JavaScript.

http://www.webcodegeeks.com/javascript/javascript-for-loop-example/

最新文章

  1. iOS 使用证书时遇到的错误一
  2. excel、csv、txt文件数据读取
  3. 啊D工具语句 适合Access和Mssql注入
  4. lintcode 中等题:kth-largest-element 第k大元素
  5. windows通过Composer安装yii2
  6. 【原】iOS 获取当前和 前后n天的日期
  7. win7 VS2008 ffmpeg release 版本崩溃 0x00905a4d 处未处理的异常
  8. css form表单样式清除
  9. WPF之ViewModel
  10. JavaScript之实例
  11. AngularJS进阶(三十七)IE浏览器兼容性后续
  12. javascript预览图片——IT轮子系列(九)
  13. [零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念
  14. IdentityServer4【Topic】之定义资源
  15. tomcat启动成功但是访问方面都是404
  16. Servlet中的过滤器
  17. shell while内获取外部变量内容
  18. C# mongodb $set或$addToSet批量更新很慢原因
  19. django加载静态文件
  20. org.quartz-scheduler 动态添加自动任务

热门文章

  1. Entity Framework 实践系列 —— 搞好关系 - 两情相悦(双向一对一)【转载】
  2. PAT (Basic Level) 1004. 成绩排名 (20)
  3. [BZOJ 1011] [HNOI2008] 遥远的行星 【近似解】
  4. 关于@synchronized(self)的用法
  5. 报错java.net.SocketException: Software caused connection abort: recv failed 怎么办
  6. EditText的 焦点事件 setOnFocusChangeListener
  7. 【转】windows常用消息大全(系统消息、通告消息、用户消息)
  8. HDU 5916 Harmonic Value Description 【构造】(2016中国大学生程序设计竞赛(长春))
  9. extjs+Aspose.Cells导出到Excel
  10. UnderStand Perspective Rasterization, SV_POSITION(gl_FragCoord) to Pixel, SV mean Systems Value