const arr = ['react', 'angular', 'vue']
// WRONG
if (arr.indexOf('react')) { // 0 -> evaluates to false, definitely as we expected
console.log('Can use React') // this line would never be executed
}
// Correct
if (arr.indexOf('react') !== -1) {
console.log('Can use React')
}
if (arr.includes('react')) {
console.log('Can use React')
}
console.log([1, 2, NaN].includes(NaN)) // true
console.log([1, 2, -0].includes(+0)) // true
console.log(['a', 'b', 'c'].includes('a')) // true
console.log(['a', 'b', 'c'].includes('a', 1)) // false
let a = 7**3 // 343
let b = 2 ** 3 // 8
// operation assignment
let a = 7
a **= 3
console.log(a); // 343
let obj = {a: 1, b: 2, c: 3}
for (let key of Object.keys(obj)) {
console.log(key, obj[key])
}
Object.values(obj).forEach(value=>console.log(value)) // 1, 2, 3
// or using for of loop
for (let value of Object.values(obj)) {
console.log(value)
}
let obj = {a: 1, b: 2, c: 3};
JSON.stringify(Object.entries(obj)); // "[["a",1],["b",2],["c",3]]"
console.log('react'.padStart(10).length) // " react" is 10
console.log('backbone'.padStart(10).length) // " backbone" is 10
console.log('backbone'.padEnd(10, '*')); // "backbone**"
let obj = {a: 1, b: 2, c: 3};
JSON.stringify(Object.entries(obj)); // "[["a",1],["b",2],["c",3]]"
console.log('react'.padStart(10).length) // " react" is 10
console.log('backbone'.padStart(10).length) // " backbone" is 10
console.log('backbone'.padEnd(10, '*')); // "backbone**"
let obj = {a: 1, b: 2, c: 3};
JSON.stringify(Object.entries(obj)); // "[["a",1],["b",2],["c",3]]"