Open yuanyuanbyte opened 2 years ago
本系列的主题是 JavaScript 基础,每期讲解一个技术要点。如果你还不了解各系列内容,文末点击查看全部文章,点我跳转到文末。
如果觉得本系列不错,欢迎 Star,你的支持是我创作分享的最大动力。
for…in 语句以原始插入顺序迭代一个对象的除 Symbol 以外的可枚举属性,包括继承的可枚举属性。for...in 是为遍历对象属性而构建的,不建议与数组一起使用,因为输出的顺序是不固定的。
for…in
for...in
let obj = { a:123, b:"abc" } for(let pro in obj){ console.log(pro+':' + obj[pro]) } //a:123 //b:abc
仅迭代自身的属性
如果你只要考虑对象本身的属性,而不是它的原型,那么使用 hasOwnProperty() 来确定某属性是否是对象本身的属性。和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。
hasOwnProperty()
in
var triangle = {a: 1, b: 2, c: 3}; function ColoredTriangle() { this.color = 'red'; } ColoredTriangle.prototype = triangle; var obj = new ColoredTriangle(); for (var prop in obj) { if (obj.hasOwnProperty(prop)) { console.log(`obj.${prop} = ${obj[prop]}`); } } // "obj.color = red"
for in 语句除了遍历对象自身的属性外,还会遍历从原型链上继承到的属性。
for in
for (var prop in obj) { console.log(`obj.${prop} = ${obj[prop]}`); } // obj.color = red // obj.a = 1 // obj.b = 2 // obj.c = 3
for…of 语句在可迭代对象(Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,为每个不同属性的值执行语句。
for…of
let arr = [123,'abc'] for(let item of arr){ console.log(item) } //123 //abc
使用for…in循环时,获得的是数组的下标;使用for…of循环时,获得的是数组的元素值。
forEach() 方法对数组的每个元素执行一次给定的函数。
forEach()
const array1 = ['a', 'b', 'c']; array1.forEach(element => console.log(element)); // expected output: "a" // expected output: "b" // expected output: "c"
map() 方法创建一个新数组,其结果为这个新数组中的每个元素是调用一次提供的函数后的返回值。
map()
const array1 = [1, 4, 9, 16]; // pass a function to map const map1 = array1.map(x => x * 2); console.log(map1); // expected output: Array [2, 8, 18, 32]
查看全部文章
各系列文章汇总:https://github.com/yuanyuanbyte/Blog
我是圆圆,一名深耕于前端开发的攻城狮。
本系列的主题是 JavaScript 基础,每期讲解一个技术要点。如果你还不了解各系列内容,文末点击查看全部文章,点我跳转到文末。
如果觉得本系列不错,欢迎 Star,你的支持是我创作分享的最大动力。
for of,for in,forEach 和 map 的区别
for in
for…in
语句以原始插入顺序迭代一个对象的除 Symbol 以外的可枚举属性,包括继承的可枚举属性。for...in
是为遍历对象属性而构建的,不建议与数组一起使用,因为输出的顺序是不固定的。仅迭代自身的属性
如果你只要考虑对象本身的属性,而不是它的原型,那么使用
hasOwnProperty()
来确定某属性是否是对象本身的属性。和in
运算符不同,该方法会忽略掉那些从原型链上继承到的属性。for in
语句除了遍历对象自身的属性外,还会遍历从原型链上继承到的属性。for of
for…of
语句在可迭代对象(Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,为每个不同属性的值执行语句。for...of与for...in的区别
使用for…in循环时,获得的是数组的下标;使用for…of循环时,获得的是数组的元素值。
forEach()
forEach()
方法对数组的每个元素执行一次给定的函数。map()
map()
方法创建一个新数组,其结果为这个新数组中的每个元素是调用一次提供的函数后的返回值。查看全部文章
博文系列目录
交流
各系列文章汇总:https://github.com/yuanyuanbyte/Blog
我是圆圆,一名深耕于前端开发的攻城狮。