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 #2354
5.11K
- π₯ 3
- β€ 2
- π 2
JA @javascript
Showing posts older than #2355 Β· Back to latest
function mystery() {
try {
throw new Error('Oops');
return 'A';
} catch (err) {
return 'B';
} finally {
return 'C';
}
}
function wrapper() {
try {
return mystery();
} finally {
console.log('D');
}
}
console.log(wrapper());
const user = { id: 1, name: 'Alice' };
const userData = new WeakMap();
userData.set(user, { lastLogin: '2023-01-01' });
const clone = { ...user };
const originalData = userData.get(user);
const cloneData = userData.get(clone);
console.log(originalData, cloneData);function analyze(...items) {
const [first, ...rest] = items;
const { length } = [...rest, 'bonus'];
const result = {
...first,
count: length,
};
console.log(result);
}
analyze({ id: 42, name: 'Item' }, 'a', 'b');
const target = { a: 1, b: 2 };
const handler = {
get(obj, prop) {
return prop in obj ? obj[prop] * 2 : 'Not found';
}
};
const proxy = new Proxy(target, handler);
// Add property to original object
target.c = 3;
// Modify existing property directly on proxy
proxy.a = 10;
// Use Reflect.get instead of direct property access
const result = Reflect.get(proxy, 'd', { custom: true });
console.log(proxy.a, proxy.b, proxy.c, result);
try {
const arr = [1, 2, 3];
function processArray() {
try {
nonExistentFunction();
} catch (err) {
throw new TypeError('Invalid type');
}
}
try {
processArray();
} catch (err) {
console.log(err instanceof Error, err instanceof TypeError, err.message);
}
} catch (finalError) {
console.log('Caught in outer block:', finalError);
}

const result = (function() {
let count = 0;
return {
increment() {
return ++count;
},
get value() {
return count;
},
reset() {
const oldCount = count;
count = 0;
return oldCount;
}
};
})();
result.increment();
result.increment();
console.log(result.reset() + result.value + result.increment());