精华内容
下载资源
问答
  • 【ES6】for of用法

    万次阅读 多人点赞 2018-05-31 12:51:25
    前言:for of是ES6新增的循环方法。前面已经说到了 【JavaScript】for、forEach 、for in、each循环详解。那for of又是怎么使用的? 一、使用例子 使用例子(一) var arr = ['nick','freddy','mike','james']; ...

    前言:for of是ES6新增的循环方法。前面已经说到了 【JavaScript】for、forEach 、for in、each循环详解。那for of又是怎么使用的?

    一、使用例子

    使用例子(一)

    var arr = ['nick','freddy','mike','james'];
    for(var item of arr){	
        console.log(item);
    }

    输出结果:

    遍历数组里的每一项。

     

    二、使用例子(二)

    var arr = [
        { name:'nick', age:18 },
        { name:'freddy', age:24 },
        { name:'mike', age:26 },
        { name:'james', age:34 }
    ];
    for(var item of arr){	
        console.log(item.name,item.age);
    }

    输出结果:

    遍历数组里的每一项。 

     

    二、与for in 区别

    区别①:for of无法循环遍历对象

    var userMsg = {
        0: 'nick',
        1: 'freddy',
        2: 'mike',	
        3: 'james'
    };
     
    for(var key in userMsg){
        console.log(key, userMsg[key]);	
    }
    console.log('-----------分割线-----------');
    for(var item of userMsg){	
        console.log(item);
    }

    输出结果:

     

    区别②:遍历输出结果不同

    var arr = ['nick','freddy','mike','james'];
    for(var key in arr){
        console.log(key);	
    }
    console.log('-----------分割线-----------');
    for(var item of arr){	
        console.log(item);
    }

    输入结果:

    不难看出,for in循环遍历的是数组的键值(索引),而for of循环遍历的是数组的值。

     

    区别③:for in 会遍历自定义属性,for of不会

    var arr = ['nick','freddy','mike','james'];
    arr.name = "数组";
    
    for(var key in arr){
        console.log(key+': '+arr[key]);	
    }
    console.log('-----------分割线-----------');
    for(var item of arr){	
        console.log(item);
    }

    输入结果:

    给数组添加一个自定义属性name,并且赋值"数组"。然后进行遍历输出的,会发现新定义的属性也被for in输出来了,而for of并不会对name进行输出。

     

    展开全文
  • for…in和forof用法区别

    千次阅读 2020-06-15 10:30:18
    一句话概括:for in是遍历(object)键名,for of是遍历(array)键值。 文章的内容大部分来自MDN。 for...in for...in 循环只遍历可枚举属性(包括它的原型链上的可枚举属性)。像 Array和Object使用内置构造...

    一句话概括:for in是遍历(object)键名,for of是遍历(array)键值。

    文章的内容大部分来自MDN。

     

    for...in

    for...in 循环只遍历可枚举属性(包括它的原型链上的可枚举属性)。像 Array和Object使用内置构造函数所创建的对象都会继承自Object.prototype和String.prototype的不可枚举属性,例如 String 的 indexOf() 方法或 Object的toString()方法。循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性(更接近原型链中对象的属性覆盖原型属性)。

    var obj = {a:1, b:2, c:3};
        
    for (let key in obj) {
      console.log(key);
    }
    
    // a
    // b
    // c

     

    for...of

    for...of语句在可迭代对象(包括Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句

    const array1 = ['a', 'b', 'c'];
    
    for (const val of array1) {
      console.log(val);
    }
    
    // a
    // b
    // c

    for of不可以遍历普通对象,想要遍历对象的属性,可以用for in循环, 或内建的Object.keys()方法

     

    for...of与for...in的区别

    无论是for...in还是for...of语句都是迭代一些东西。它们之间的主要区别在于它们的迭代方式。

    for...in语句以任意顺序迭代对象的可枚举属性。

    for...of 语句遍历可迭代对象定义要迭代的数据。

    以下示例显示了与Array一起使用时,for...of循环和for...in循环之间的区别。

    Object.prototype.objCustom = function() {}; 
    Array.prototype.arrCustom = function() {};
    
    let iterable = [3, 5, 7];
    iterable.foo = 'hello';
    
    for (let i in iterable) {
      console.log(i); // 0, 1, 2, "foo", "arrCustom", "objCustom"
    }
    
    for (let i in iterable) {
      if (iterable.hasOwnProperty(i)) {
        console.log(i); // 0, 1, 2, "foo"
      }
    }
    
    for (let i of iterable) {
      console.log(i); // logs 3, 5, 7
    }

     

    展开全文
  • 英语中offor用法有什么区别

    千次阅读 2016-09-10 13:00:33
    of 表从属关系介词of用法(1)所有关系this is a picture of a classroom(2)部分关系a piece of papera cup of teaa glass of watera bottle of milkwhat kind of football,american of soccer?(3)描写关系a...

    转自: http://www.cnblogs.com/wqj1212/archive/2011/11/14/2248343.html

    for 表原因、目的
    of 表从属关系

    介词of的用法

    (1)所有关系

    this is a picture of a classroom

    (2)部分关系

    a piece of paper

    a cup of tea

    a glass of water

    a bottle of milk

    what kind of football,american of soccer?

    (3)描写关系

    a man of thirty 三十岁的人

    a man of shanghai 上海人

    (4)承受动作

    the exploitation of man by man.人对人的剥削。

    (5)同位关系

    it was a cold spring morning in the city of london in england.

    (6)关于,对于

    what do you think of chinese food?

    你觉得中国食品怎么样?

    介词 for 的用法小结

    1. 表示“当作、作为”。如:

    i like some bread and milk for breakfast. 我喜欢把面包和牛奶作为早餐。

    what will we have for supper? 我们晚餐吃什么?

    1. 表示理由或原因,意为“因为、由于”。如:

    thank you for helping me with my english. 谢谢你帮我学习英语。

    thank you for your last letter. 谢谢你上次的来信。

    thank you for teaching us so well. 感谢你如此尽心地教我们。

    1. 表示动作的对象或接受者,意为“给……”、“对…… (而言)”。如:

    let me pick it up for you. 让我为你捡起来。

    watching tv too much is bad for your health. 看电视太多有害于你的健康。

    1. 表示时间、距离,意为“计、达”。如:

    i usually do the running for an hour in the morning. 我早晨通常跑步一小时。

    we will stay there for two days. 我们将在那里逗留两天。

    1. 表示去向、目的,意为“向、往、取、买”等。如:

    let’s go for a walk. 我们出去散步吧。

    i came here for my schoolbag.我来这儿取书包。

    i paid twenty yuan for the dictionary. 我花了20元买这本词典。

    1. 表示所属关系或用途,意为“为、适于……的”。如:

    it’s time for school. 到上学的时间了。

    here is a letter for you. 这儿有你的一封信。

    1. 表示“支持、赞成”。如:

    are you for this plan or against it? 你是支持还是反对这个计划?

    1. 用于一些固定搭配中。如:

    who are you waiting for? 你在等谁?

    for example, mr green is a kind teacher. 比如,格林先生是一位心地善良的老师

    展开全文
  • [乐意黎原创]JS里的for…in和forof用法区别

    万次阅读 多人点赞 2018-05-07 09:57:38
    for...in 循环 for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。 for...in 语句用于对数组或者对象的属性进行循环操作。 for ... in 循环中的代码每执行一次,就会对数组的元素...

     

    for...in 循环

    for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。

     

    for...in 语句用于对数组或者对象的属性进行循环操作。

    for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。

    for...in语句以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。

    for (variable in object) {...}

    variable

    在每次迭代时,将不同的属性名分配给变量。

    object

    被迭代枚举其属性的对象。

    for...in 循环只遍历可枚举属性。像 Array和 Object使用内置构造函数所创建的对象都会继承自Object.prototypeString.prototype的不可枚举属性,例如 String 的 indexOf()  方法或 ObjecttoString()方法。循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性(更接近原型链中对象的属性覆盖原型属性)。

     

    数组索引只是具有整数名称的枚举属性,并且与通用对象属性相同。不能保证for ... in将以任何特定的顺序返回索引。for ... in循环语句将返回所有可枚举属性,包括非整数类型的名称和继承的那些。

    因为迭代的顺序是依赖于执行环境的,所以数组遍历不一定按次序访问元素。因此当迭代访问顺序很重要的数组时,最好用整数索引去进行for循环(或者使用 Array.prototype.forEach() 或 for...of 循环)。

     

    语法:

    for (变量 in 对象){ 在此执行代码 }

    “变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。

    var mycars = new Array()
    mycars[0] = "Saab"
    mycars[1] = "Volvo"
    mycars[2] = "BMW"
    
    mycars.color = "white"
    
    for (var x in mycars)
    {
       console.log(mycars[x]);
    }

    var mycars = ["Saab", "Volvo", "BMW"];
    
    mycars.color = "white"
    
    for (var x in mycars)
    {
       console.log(mycars[x]);
    }

    var mycars = {1:"Saab", 2:"Volvo", 3:"BMW"};
    
    mycars.color = "white"
    
    for (var x in mycars)
    {
       console.log(mycars[x]);
    }

    var mycars = {"1":"Saab", "2":"Volvo", "3":"BMW"};
    
    mycars.color = "white"
    
    for (var x in mycars)
    {
       console.log(mycars[x]);
    }


    for...of 循环

    for … of循环是ES6引入的新的语法,用for … of循环遍历集合

    for...of语句可迭代对象(包括 ArrayMapSetStringTypedArrayarguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。

    for (variable of iterable) {
        //statements
    }variable在每次迭代中,将不同属性的值分配给变量。iterable被迭代枚举其属性的对象。
    var mycars = new Array()
    mycars[0] = "Saab"
    mycars[1] = "Volvo"
    mycars[2] = "BMW"
    
    mycars.color = "white"
    
    for (var x of mycars)
    {
       console.log(x);
    }

     

    ar mycars = ["Saab", "Volvo", "BMW"];
    
    mycars.color = "white"
    
    for (var x of mycars)
    {
       console.log(x);
    }

     

    var mycars = {1:"Saab", 2:"Volvo", 3:"BMW"};
    
    mycars.color = "white"
    
    for (var x of mycars)
    {
       console.log(x);
    }
    //错误用法


    or...offor...in的区别

    最后: 

    无论是for...in还是for...of语句都是迭代一些东西。它们之间的主要区别在于它们的迭代方式。

    for...in 语句以原始插入顺序迭代对象的可枚举属性

    for...of 语句遍历可迭代对象定义要迭代的数据。

    以下示例显示了与Array一起使用时,for...of循环和for...in循环之间的区别。

    Object.prototype.objCustom = function() {}; 
    Array.prototype.arrCustom = function() {};
    
    let iterable = [3, 5, 7];
    iterable.foo = 'hello';
    
    for (let i in iterable) {
      console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
    }
    
    for (let i in iterable) {
      if (iterable.hasOwnProperty(i)) {
        console.log(i); // logs 0, 1, 2, "foo"
      }
    }
    
    for (let i of iterable) {
      console.log(i); // logs 3, 5, 7
    }
    Object.prototype.objCustom = function() {};
    Array.prototype.arrCustom = function() {}; 
    
    let iterable = [3, 5, 7]; 
    iterable.foo = 'hello';

    每个对象将继承objCustom属性,并且作为Array的每个对象将继承arrCustom属性,因为将这些属性添加到Object.prototypeArray.prototype。由于继承和原型链,对象iterable继承属性objCustomarrCustom

    for (let i in iterable) {
      console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom" 
    }

    此循环仅以原始插入顺序记录iterable 对象的可枚举属性。它不记录数组元素357 或hello,因为这些不是枚举属性。但是它记录了数组索引以及arrCustomobjCustom。如果你不知道为什么这些属性被迭代,array iteration and for...in中有更多解释。

    for (let i in iterable) {
      if (iterable.hasOwnProperty(i)) {
        console.log(i); // logs 0, 1, 2, "foo"
      }
    }

    这个循环类似于第一个,但是它使用hasOwnProperty() 来检查,如果找到的枚举属性是对象自己的(不是继承的)。如果是,该属性被记录。记录的属性是012foo,因为它们是自身的属性(不是继承的)。属性arrCustomobjCustom不会被记录,因为它们是继承的。

    for (let i of iterable) {
      console.log(i); // logs 3, 5, 7 
    }

    该循环迭代并记录iterable作为可迭代对象定义的迭代值,这些是数组元素 357,而不是任何对象的属性。

     


    For 循环

    for 循环是您在希望创建循环时常会用到的工具。

    下面是 for 循环的语法:

    for (语句 1; 语句 2; 语句 3)
      {
      被执行的代码块
      }
    

    语句 1 在循环(代码块)开始前执行

    语句 2 定义运行循环(代码块)的条件

    语句 3 在循环(代码块)已被执行之后执行

    实例

    for (var i=0; i<5; i++)
      {
      x=x + "The number is " + i + "<br>";
      }

     


    总结

    for … in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。 

     

    for … in循环将把name包括在内,但Array的length属性却不包括在内。

    for … of循环则完全修复了这些问题,它只循环集合本身的元素。



    以上

    -------------------------------

    乐意黎

    2018-05-07

    展开全文
  • for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。(forof是ES6新引入的特性) 定义一个数组 let arr = ['a','b','c']; //先使用for in 循环: for(let index in arr ){ console.log(`${arr...
  • 主要介绍了Js里的for…in和forof用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • JS中 for in 与 for of区别

    万次阅读 多人点赞 2018-10-06 14:32:21
    for of遍历的是数组元素值。 Array.prototype.method=function(){} var myArray=[1,2,4]; myArray.name="数组"; for (var index in myArray) console.log(myArray[index]); //0,1,...
  • 主要介绍了js中forEach,for in,for of循环的用法,结合实例形式总结分析了js中forEach,for in,for of循环相关使用技巧与操作注意事项,需要的朋友可以参考下
  • for offor in 的区别

    万次阅读 多人点赞 2018-05-23 09:47:46
    for in 一般用于遍历对象的可枚举属性。以及对象从构造函数原型中继承的属性。对于每个不同的属性,语句都会被执行。... 不建议使用for in 遍历数组,因为输出的顺序是不固定的。...for of ...
  • JS map filter some every forEach for...in for...of 用法总结
  • for offor in 的一些区别

    千次阅读 2020-09-21 16:11:05
    自己经常会搞混淆for offor of区别以及用法,所以记录一下,方便以后忘记了,可以回来看看 1.for in for...in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性。 用法for (variable in object) ...
  • 主要介绍了ES6中Iterator与for..of..遍历用法,结合实例形式分析了ES6中Iterator的概念、用法for..of..遍历的使用技巧,需要的朋友可以参考下
  • javascript 中的Map Set 用法,创建,添加删除,Map元素遍历,Set中元素遍历以及for...in循环,for...of循环的用法,forEach用法
  • js笔记一:js中forEach,for in,for of循环的用法

    万次阅读 多人点赞 2017-01-04 11:21:11
    js中循环语句有forEach,for in,for of 三种了一般的遍历数组的方法: var array = [1,2,3,4,5,6,7]; for (var i = 0; i < array.length; i) { console.log(i,array[i]); } 结果如下: 0 1 1 2 2 3...
  • JS里的for…in和forof用法

    千次阅读 2017-06-28 14:48:33
    之前看编程方法学,for循环的基本格式是for(init;test;step ){ statement } //例如 for(int i=0,i;...for i in arry今天看廖雪峰的官网,居然看到了js里更神奇的操作,for ……of循环,这个类似于
  • 下面看一下它的用法以及和indexOf区别.  1.indexOf()用法: 直接打点调用,括号参数传需要匹配的项.如果数组中有这一项,返回此项的索引值.没有返回 -1;  2. includes()方法: 直接打点调用,括号传两个参...
  • vue中v-for用法

    万次阅读 2019-03-05 12:19:19
    它需要结合着in 或者of来使用,如下 &lt;div id="app"&gt; &lt;ul&gt; &lt;li v-for="(person, index) in persons"&gt; {{ person.name }} &lt;/li&gt; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 317,039
精华内容 126,815
关键字:

forof的用法区别