Skip to main content
00:00/00:00
Lecture 11 of 188

The has and deleteProperty trap

Download Course (Free)

Course Content

0 / 188 completed
Section 1: Fill up knowledge loopholes var, let, const, hoisting, temporal dead zone5 videos

Everything you need to know about VAR

13m

Everything you need to know about LET

6m

Constant

3m

TDZ Temporal Dead Zone

4m

Real-life application of LET

11m
Section 2: ES6 new syntax Reflect and Proxy10 videos

Reflect and its methods

10m

Revocable proxy

6m

What is Proxy

13m

Create private properties using the GET trap

6m

The SET trap

7m

The has and deleteProperty trap

9mNow Playing

Use a proxy object as the prototype

16m

The defineProperty trap

20m

The apply trap

6m

The constructor trap

7m
Section 3: JSON1 videos

JSON

37m
Section 4: CommonJS4 videos

Introduction to CommonJS

10m

The mechanism of CommonJS the module object

7m

Circular dependency

6m

How CommonJS handles cache require.cache

11m
Section 5: ES6 Module import export6 videos

ES6 import and export

3m

How to 'import'

4m

Named export

12m

Default export

6m

The difference between named export and dynamic export dynamic reference

6m

Use ESM in browser

7m
Section 6: The strict mode2 videos

How to enable the strict mode

8m

Changes brought by the strict mode

7m
Section 7: The Object prototype chain and the prototypal inheritance4 videos

proto

5m

The prototype property of a constructor

13m

How our own constructor uses the prototype chain

5m

Real-life application of prototype chain

11m
Section 8: The Object Constructor and its methods11 videos

Introduction to the Object constructor

5m

Object.seal()

6m

Object.freeze()

5m

Object.values(), Object.keys(), Object.entries(), Object.is()

7m

Object.setPrototypeOf() and Object.assign()

9m

Object.create() Part 1

4m

Object.create() Part 2

6m

Property attributes

7m

The descriptor object

5m

Create properties with customized attributes

5m

Object.preventExtensions()

7m
Section 9: Accessor and its application two-way data binding3 videos

Getter and Setter introduction

5m

Create accessors using Object.defineProperty()

5m

Two-way data binding using getter and setter

4m
Section 10: Constructor5 videos

How to define your own constructor function

14m

Prototype and static properties and methods

11m

Review, comparison and summary

17m

Private properties in constructors

6m

How to define getter and setter in a constructor

6m
Section 11: Class5 videos

Class introduction

9m

How to define properties

14m

How to define methods instance, prototype and static

8m

Fields

9m

Private properties in classes

4m
Section 12: Fill up knowledge loopholes function hoisting, arguments, caller, callee, THIS5 videos

Who has the highest priority Variable name, function name or argument name

10m

Arguments, caller, callee

11m

Three ways to redirecting THIS of a funciton

10m

Higher-order function and currying

8m

Currying and closure

7m
Section 13: Extending classes7 videos

Extend properties

13m

Extend methods

6m

Application extending the Array() constructor

8m

static get [Symbol.species]

5m

new.target control the instantiation location

3m

Make the parent class 'un-newable'

7m

Mixin

9m
Section 14: Stack, queue, heap, process, thread, recursion, macro and micro task4 videos

Data structure Queue, Stack, and Heap

7m

Thread and Process, sync and async, blocking and non-blocking

15m

Recursion and stack overflow

9m

Macro tasks, micro tasks, and their queues

9m
Section 15: Event loop and task queue3 videos

Event loop, micro task queue, macro task queue

21m

Interview challenges predict the result of the following programs

15m

process.nextTick()

2m
Section 16: Tail call optimization one frame in stack at a time2 videos

What is tail call optimization

7m

Real-life application of tail call optimization

15m
Section 17: Encapsulation, inheritance, and polymorphism6 videos

Encapsulation, inheritance, polymorphism

9m

Differences between a primitive prop. value and a reference-type prop. value

8m

Douglas Crawford's program recreate Object.create()

4m

The creative combination of a constructor and the call or apply method

3m

The genius combination of two constructors

3m

Parasitic inheritance

7m
Section 18: Deep and shallow object copy4 videos

instanceof and typeof

7m

'Shallow copy an object

7m

Deep copy an object

17m

Deep assign an object into another one

11m
Section 19: Garbage collection and circular dependency2 videos

JavaScript garbage collection and memory leak

5m

Circular reference, reference counting and mark and sweep

3m
Section 20: BONUS basic computing knowledge4 videos

Bit, byte, word, memory address and byte addressing

7m

Basic encoding knowledge

11m

Memory address and byte addressing

5m

Bit width

9m
Section 21: Array and string related interview questions13 videos

Array basics

9m

String basics

3m

Calculating word count using the split() method

5m

Extract a section of a string

6m

Replace a section of a string

8m

Highlight selected texts

6m

How does an array affect THIS in a function or method

6m

Concatenate two arrays, operating the first and last element

4m

Remove duplicated elements using two methods

8m

Check the entire array and find the matching element

8m

How to remove and replace designated elements and retrieve an array segment

5m

How to find the max and min element and how to reorganize array elements

6m

Array with holes

6m
Section 22: Data type related interview questions3 videos

Data types in JavaScript

3m

Type coercion, wrapper object, explicit and implicit typecasting

6m

Compare NULL, undefined, and NaN

4m
Section 23: Closure and arrow function5 videos

Closure

5m

Real-life application of Closure

5m

Syntax of arrow function

8m

THIS in an arrow function

6m

Application of arrow function

8m
Section 24: Check data type4 videos

The problems with typeof and instanceof

7m

Create a data type checker by combining typeof and instanceof

12m

Checking data type using the constructor property

4m

Checking data type using the toString method and the call or apply method

8m
Section 25: Scope-related interview questions2 videos

Scope chain and closure

7m

Lexical scoping vs. dynamic scoping

3m
Section 26: Bubble sorting algorithm (SUPER DETAILED)13 videos

Switching two variable values without creating a new variable

2m

Improve the bubble sorting program by ending the loop at the earliest timing

11m

The problem with the inner FOR loop

8m

Avoid unnecessary comparisons using rightSortBorder

14m

LeftSortBorder avoiding unnecessary comparisons while iterating backwards

5m

Count how many times each character of a string has been used

4m

Find the most and least frequently used character

6m

Count words

10m

Find the most and least frequently words

11m

Bubble sorting introduction

7m

Bubble sorting application

11m

Bubble sort backwards

7m

Reorganize array elements in ascending and descending order using bubble sorting

7m
Section 27: Cocktail sorting2 videos

Cocktail sorting

15m

Add the left and right sort border to avoid unnecessary comparisons

15m
Section 28: Quick sorting2 videos

Quick sorting introduction

9m

Quick sorting demo

11m
Section 29: Counting sorting4 videos

Counting sorting introduction

8m

Deal with duplicated elements

7m

Improve efficiency Part 1

9m

Improve efficiency Part 2

10m
Section 30: Insertion sorting2 videos

Insertion sorting introduction

5m

Insertion sort demo

11m
Section 31: Bucket sorting2 videos

Bucket sorting introduction

23m

Bucket sorting demo

20m
Section 32: Selection sorting2 videos

Selection sort introduction

4m

Selection sort demo

9m
Section 33: Time and space complexity big O notation1 videos

Time and space complexity big O notation

17m
Section 34: Destructure the 'fancy' way of setting variable values5 videos

Destructure array

9m

Destructure object

11m

Destructure string

5m

Destructure number, boolean, null and undefined

7m

Destructure function arguments

7m
Section 35: Data structure with JavaScript2 videos

Linear structures and how they are stored in memory

20m

Non-linear data structure

12m
Section 36: Binary heap and its application heap sorting4 videos

How to realize binary heap in JavaScript

7m

Realize the binary heap structure using JavaScript codes

9m

The heap sorting algorithm intro

4m

The heap sorting algorithm demo

7m
Section 37: The Observer Pattern3 videos

Introduction to the Observer pattern

10m

Managing several page elements using the Observer pattern

7m

Two-way data binding using the Observer pattern

4m
Section 38: Things you don't know about the FOR loop2 videos

The two shocking forms of FOR loop

13m

Challenge iterating over the array backwards

8m
Section 39: ES6 new syntax Map and Set4 videos

Map basics

11m

Iterate over MAP using FOR OF

7m

SET basics

7m

Application of SET

6m
Section 40: ES6 new syntax Symbol5 videos

Introduction to Symbol

4m

How to create a Symbol value

4m

Symbol.for()

4m

Use Symbol value as the property name

4m

Well-known Symbol

12m
Section 41: ES6 new syntax Iterator and generator6 videos

The iteration protocol the iterable protocol and the iterator protocol

10m

Create your own iterator

12m

Generator

9m

Application of generator

13m

The next() method

10m

yield

4m
Section 42: ES6 new syntax Promise7 videos

Introduction to Promise

16m

The Promise constructor

12m

The application of Promise

10m

The then able object

7m

Promise.resolve() and Promise.reject()

7m

Limits of Promise.resolve() and Promise.reject()

8m

Process several promises together .all(), .allSettled() and .race()

20m
Section 43: ES6 new syntax async await2 videos

async await

13m

async await supplement

4m