javaScript循环

循环结构的执行步骤:

1、声明循环变量;

2、判断循环条件;

3、 执行循环体操作 ;

4、 更新循环变量;

5、 然后循环 2-4,

 

while循环( )中的表达式,运算结果可以是各种类型,但是最终都会转为真假,转换规则如下

boolean true为真 false为假

String 空为假 ,非空为真

Number 0为假 ,非0为真

Object 存在为真,undefined为假

 

do{

...

}while

 

 

while循环特点:先判断后执行

do-while循环特点:先执行再判断,即使初始条件不成立,do-while循环至少执行一次

 

for循环

 1、for有三个表达式:

    声明循环变量

    判断循环条件

    更新循环变量

2 、for循环的执行特点:先判断再执行,与while相同

3、for循环三个表达式可以由多个部分构成,第二部分多个判断条件用&& ||连接,第三部分用逗号分隔

 

for in循环

// 声明一个Peson类
function Person(){
    this.name = "张三";
    this.age = 14;
    this.func1 = function(){
        
    }
}
//实例化这个类
var zhangsan = new Person();
// 使用for-in遍历这个对象
//  key 表示obj对象的每一个键值对的键!! 所有循环中,需要使用obj[keys]来取到每一个值
//  for-in 循环,遍历时不仅能读取对象自身上面的成员属性,也能延续原型链遍历出对象的原型属性
//  所以,可以使用hasOwnProperty判断一个属性是不是对象自身上的属性。
//  obj.hasOwnProperty(keys)==true 表示这个属性是对象的成员属性,而不是原先属性
for(keys in zhangsan){
    console.log(zhangsan[keys])
}

 

JavaScript 原有的for...in循环,只能获得对象的键名,不能直接获取键值。ES6 提供for...of循环,允许遍历获得键值。

 

数组

        var arr = ['a', 'b', 'c', 'd'];

        for (let a in arr) {
          console.log(a); // 0 1 2 3
        }
        
        for (let a of arr) {
          console.log(a); // a b c d
        }

 

上面代码表明,for...in循环读取键名,for...of循环读取键值。如果要通过for...of循环,获取数组的索引,可以借助数组实例的entries方法和keys方法

 

Set 和 Map 结构

        var engines = new Set(["Gecko", "Trident", "Webkit", "Webkit"]);
        for (var e of engines) {
          console.log(e);
        }
        // Gecko  Trident    Webkit
        
        var es6 = new Map();
        es6.set("edition", 6);
        es6.set("committee", "TC39");
        es6.set("standard", "ECMA-262");
        for (var [name, value] of es6) {
          console.log(name + ": " + value);
        }
        // edition: 6
        // committee: TC39
        // standard: ECMA-262

上面代码演示了如何遍历 Set 结构和 Map 结构。值得注意的地方有两个,首先,遍历的顺序是按照各个成员被添加进数据结构的顺序。其次,Set 结构遍历时,返回的是一个值,而 Map 结构遍历时,返回的是一个数组,该数组的两个成员分别为当前 Map 成员的键名和键值。

posted on 2020-01-02 21:16  zhishiyv  阅读(203)  评论(0编辑  收藏  举报

导航