JavaScript Chats Fall 2019

Find all resources and links here

November 20, 2019

What is JavaScript Chats?

“After you learn JavaScript, you should learn more JavaScript”

Learning a language or a framework outside of class can be hard, especially past the syntax and the standard APIs. JavaScript is one of the most popular languages that people use outside of academic settings at UCLA. Come out to JavaScript Chats with ACM Hack, a weekly discussion on intermediate/advanced JavaScript. This series aims to deepen your understanding of the language’s features and designs. We also plan to cover frameworks related topics.

Session 1: Function and this

In this section, we learn about the functions and the this pointer in JavaScript. As a dynamic language, it introduces a lot of convenience but also pitfalls when it comes to scoping. We will also see how ES6 syntax helps us avoid these pitfalls.

Before going into this section, make sure you know:

  • How to write a function with the function keyword and the arrow function syntax in JavaScript
  • What are Arrays and Objects in JavaScript?
  • The existence of this keyword in JavaScript

See the session note here: Function and this

See slides here: Slides

Session 2: Asynchronous JavaScript

We will take a tour of asynchronous programming in JavaScript. We will talk about the eventloop, the underlying components within the JavaScript engine that drives the asynchronous programming model. We will also talk about Promises.

See the session note here: Asynchronous JavaScript

See slides here: Slides

Session 3: A Gentle Introduction to React Hooks

In React 16, the library introduced a new paradigm to code React application called "hooks". We will help you transition from the class based syntax to the new hook pattern. We will also discuss the motivation behind the switch and how we “share logic” with React hooks!

Make sure you know basic React before going into this.

See the session note here: A Gentle Introduction to React Hooks

See slides here: Slides

Session 4: Optimizing Frontend and React Apps

How do we optimize our webpage? We will focus on measuring the performance of a web application with the Chrome DevTools. We will also learn some techniques to optimize the performance of our React application.

See the session note here: Optimizing Frontend and React Apps

See slides here: Slides

Session 5: Multi-Threading in JavaScript: Worker Threads

JavaScript is traditionally single-threaded. The idea of multi-threading is recently introduced to the language in both the browser and Node runtime. We will talk about how to utilize your CPU in a language with a primarily single thread model, and how threads communicate and pass data to each other.

See the session note here: Multi-Threading in JavaScript: Worker Threads

See slides here: Slides

Session 6: Introduction to Testing with JavaScript

Through the Jest testing framework, we explore the idea behind test driven developments, core concepts in testing such as coverage, test granularity and mocking.

See the session note here: Introduction to Testing with JavaScript

See slides here: Slides