Posted on Feb 2nd, 2021
Today’s topics
- Introduction to the object data structure in JavaScript
- Storing data in and retrieving data from objects
🎯 Project: Build a customer directory
Link to assignment invitation
🔖 Resources
🦉 Code, Notes & Videos
Access Passcode: 7!%^p0C8
Posted on Feb 1st, 2021
Today’s topics
- What’s a bug?
- Debugging tools and techniques
- Errors and exceptions
- Handling errors with try…catch
For today’s assignment, there is no code to write and no repo to clone. Your task is to debug the weekend homework together in collaboration with one or two others in class and commit your debugged code. Please note in a commit message the name(s) of the person(s) who helped you debug!
Links and resources
There’s an awesome article about stacks, which we encounter in a stack trace in our debugging adventures, in Vaidehi Joshi’s BaseCS blog series. It’s not necessary to read this to understand debugging, but if you want some more information about terminology and what’s really happening, it’s great!
🤓 Essential Nerd Humor: Gary Bernhardt’s WAT talk
Code, slides, and video from class
Access Passcode: +1f.rgzg
Posted on Jan 28th, 2021
Today’s topics
- HTML forms
- Working with form data in JavaScript
- Client-side form validation with JavaScript
Project
Link to the assignment invitation
🔖 Resources
🦉 Code, Notes & Videos
Access Passcode: Lg1@dwT1
Posted on Jan 27th, 2021
Practice, practice, and more practice
Review what we have seen so far in JS by going back over notes – be sure to type out the code examples so that you can see the concepts illustrated in code for yourself. This will go a long way to establishing and deepening your understanding.
Optional project: 👻 Exercism: JavaScript Track
To get some more practice writing JavaScript, check out this awesome free online tool called Exercism.
You can sign up using your GitHub account. Choose the JavaScript track. There are two ways to use Exercism, in Practice Mode or Mentor Mode. For now, just choose Practice Mode.
Work through the setup instructions to install Exercism on your computer with Homebrew. The following exercises in the JavaScript track are a great place to begin, but you’re of course welcome to explore and find the exercises that you find interesting.
- TwoFer
- Raindrops
- Resistor Color
- Hamming
- High Scores
- Word Count
For each exercise, follow the instructions on Exercism to upload your solution. Once you do that you will be able to see the solutions other folks have posted for the same exercise.
I’m not requiring you to submit your solutions to this. In the past I’ve assigned this to be turned in, and I recorded a video to show folks how to get exercism set up and submitted in the following video. I’m just including this here in case anyone finds it useful.
Video demo of downloading, completing, and submitting the first exercise
🔖 Resources
- MDN JS Guide
- JS for Cats – If you want a low-key walk through of basics, this is actually pretty helpful. It’s older so you will see references to the
var keyword instead of let or const.
Posted on Jan 27th, 2021
Today’s topics
- Using JS in the browser
- The DOM: the Document Object Model
- DOM manipulation with JS
- JS Events
🎯 Project: JavaScript Calculator
This assignment is due tomorrow morning.
Link to the assignment invitation
🔖 Resources
This resource is really not at all necessary to understand or do the project, but if you want to know more about the concept of tree structures in computer science, check out this piece from Vaidehi Joshi’s BaseCS blog series. She is awesome! There is also a thoroughly delightful accompanying BaseCS podcast with the equally amazing Saron Yitbarek.
And here is more info about what is happening when a browser renders a page – very enlightening, although not strictly necessary at this stage:
This is a good explanation about how JS events “bubble” up the chain of elements on the page:
If you would like to know more about the JavaScript Event Loop and how it works, I highly recommend this resource. Don’t miss the video of the conference talk that goes along with it – it’s excellent:
🦉 Code, Notes & Video
Access Passcode: 77A*rATn