Skip to content

Instantly share code, notes, and snippets.

@a-x-
Created March 7, 2016 13:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save a-x-/58d9d1b8079c7a091391 to your computer and use it in GitHub Desktop.
Save a-x-/58d9d1b8079c7a091391 to your computer and use it in GitHub Desktop.
Differencies: for of, for in, for in hasOwnProperty. arrays and objects.
(()=>{'use strict';
let iterable = [3, 5, 7];
iterable.foo = "hello";
console.log('# iterable', iterable)
console.log('## access prop in array')
console.log(iterable.foo) // hello
console.log('## for in arr')
for (let i in iterable) {
console.log(i); // logs keys: "0", "1", "2", "foo"
}
console.log('## for of arr')
for (let i of iterable) {
console.log(i); // logs 3, 5, 7
}
console.log('## for of object')
// for (let i of {a:1,b:2}){console.log(i)} // error
console.error('error')
let object = {foo:'bar', foo1: 'bar1'};
object.__proto__ = {baz:'qux'}
console.log('\n# object', object);
console.log('## access proto of object')
console.log(object.baz) // logs qux
console.log('## for in object')
for (let i in object) {
console.log(i); // logs keys: "foo", "foo1", "baz"
}
console.log('## for hasOwnProperty in object')
for (let i in object) { if(! object.hasOwnProperty(i)) {continue;}
console.log(i); // logs keys: "foo", "foo1"
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment