A resourceful newsletter featuring the latest and most important news, articles, books and updates in the world of #javascript 🚀 Don't miss our Quizzes!
Let's chat: @nairihar
Post #3467
2.24K
- ❤ 1
- 👍 1
- 🔥 1
JA @javascript
Showing posts older than #3468 · Back to latest
const proto = { inherited: 'nope' };
const obj = Object.create(proto);
obj.b = 2;
obj[1] = 'one';
obj.a = 1;
Object.defineProperty(obj, 'hidden', { value: 'secret', enumerable: false });
obj[Symbol('sym')] = 'symbolValue';
console.log(
Object.keys(obj).join(','),
Object.values(obj).join(','),
Object.entries(obj).length
);const compose = (...fns) => x => fns.reduceRight((acc, fn) => fn(acc), x);
const pipe = (...fns) => x => fns.reduce((acc, fn) => fn(acc), x);
const add = n => x => x + n;
const mul = n => x => x * n;
const composed = compose(add(3), mul(2));
const piped = pipe(add(3), mul(2));
console.log(composed(5), piped(5));

const compose = (...fns) => x => fns.reduceRight((acc, fn) => fn(acc), x);
const pipe = (...fns) => x => fns.reduce((acc, fn) => fn(acc), x);
const inc = x => x + 1;
const double = x => x * 2;
const square = x => x * x;
const f = compose(square, double, inc);
const g = pipe(square, double, inc);
console.log(f(2), g(2));
function* inner() {
yield 1;
yield 2;
return 'inner-done';
}
function* outer() {
const result = yield* inner();
yield result;
yield 3;
}
const gen = outer();
const results = [];
let r = gen.next();
while (!r.done) {
results.push(r.value);
r = gen.next();
}
console.log(results.join(','));
export {};class Base {}
class Derived extends Base {
static [Symbol.hasInstance](instance) {
return false;
}
}
const d = new Derived();
console.log(d instanceof Derived, d instanceof Base, Object.getPrototypeOf(Derived) === Base);function makeFns() {
const result = [];
for (var i = 0; i < 3; i++) {
let j = i;
result.push(() => i + j);
}
return result;
}
const fns = makeFns();
console.log(fns.map(f => f()).join(','));const arr = [1, [2, 3], { a: 4 }];
const copy = [...arr];
copy[1].push(99);
copy[2].a = 100;
arr[0] = 999;
console.log(arr[0], arr[1], arr[2].a, copy[0]);const a = Math.max();
const b = Math.min();
const c = 0.1 + 0.2 === 0.3;
const d = Math.max(1, NaN, 3);
const e = [1, 2, 3].reduce((sum, n) => sum + n, 0) / 3;
const f = Number.isInteger(5.0);
console.log(a, b, c, d, e, f);
function makeCounters() {
const counters = [];
for (var i = 0; i < 3; i++) {
let j = i;
counters.push(() => `${i}-${j}`);
}
return counters;
}
const [a, b, c] = makeCounters();
console.log(a(), b(), c());
export {};