Skip to content

Instantly share code, notes, and snippets.

// Written as of ES2019
await Promise.resolve(console.log('🎉')); // → SyntaxError: await is only valid in async function
(async function() {
await Promise.resolve(console.log('🎉')); // → 🎉
}());
// Top level await
await Promise.resolve(console.log('🎉')); // → 🎉
const number1 = 10;
const number2 = 0;
// Written as of ES2019
const score1 = number1 || 1;
console.log(score1); // 10
const score2 = number2 || 1;
console.log(score2); // 1
// Using nullish coalescing
class User {
#salary = 1000;
}
const newUser = new User();
console.log(newUser.salary) // undefined
// Written as of ES2019
if (onError) { // Testing if onError really exists
onError();
}
// Using optional chaining with function calls
onError?.(); // no exception if onError is undefined
const users = [
{
name: 'Nguyễn Hưng Khánh',
girl_friend: {
name: 'Nguyễn Thị Khánh',
address: 'Hà Nội'
}
},
{
name: 'Nguyễn Văn Khánh'
console.log(users[1]?.girl_friend?.name)
// output: undefined
// users[0]
console.log(users[0].girl_friend.name)
// users[1]
if (users[1].girl_friend) {
console.log(users[1].girl_friend.name)
} else {
console.log('Lêu lêu. Thằng này ê sắc ế')
}
const users = [
{
id: 1,
name: 'Nguyễn Hưng Khánh',
girl_friend: {
name: 'Nguyễn Thị Khánh',
address: 'Hà Nội'
}
},
{
@daubattu
daubattu / hackerrank_solution_of_electronics_shop_in_javascript.js
Created October 29, 2019 15:08
[Hackerrank] Solution of Electronics Shop in JavaScript
function getMoneySpent(keyboards, drives, b) {
/*
* Write your code here.
*/
let max = -1;
for(let i = 0; i < keyboards.length; i++) {
const keyboardPrice = keyboards[i];
for(let j = 0; j < drives.length; j++) {
const drivePrice = drives[j];
@daubattu
daubattu / hackerrank_solution_of_drawing_book_sets_in_javascript.js
Created October 28, 2019 09:59
[Hackerrank] Solution of Drawing Book in JavaScript
function pageCount(n, p) {
/*
* Write your code here.
*/
const pageFromStart = Math.floor(p/2);
const pageFromEnd = Math.ceil(((n % 2 !== 0 ? n - 1 : n) - p)/2);
return Math.min(pageFromStart, pageFromEnd);
}