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
Promise
s.
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