Learning JavaScript and TypeScript in Public: My Notes and Lessons from Boot.dev and freeCodeCamp.org

Blog Post Search

Blog Post Categories

Follow Us

Feel free to follow us on social media for the latest news and more inspiration.

A self-taught developer's journal on modern JavaScript fundamentals

Prerequestes

Create an account on freecodecamp.org - https://www.freecodecamp.org/jefferyjjensen

BYU-Idaho Academic Catalog Dept of Computer Science and Engineering Degrees and Certificates - Web and Computer Programming (Certificate #1) and Full Stack Web Development (Certificate #2). Then, you can earn an Associate's in Software Development from BYU Pathway Worldwide.

Web and Computer Programming (Certificate)
CSE110 - Introduction to Programming (2 credits)This course introduces the fundamentals of programming and the building blocks of programming languages (variables, decisions, calculations, loops, arrays, and input and output). Students use these tools to solve problems.
CSE111 - Programming with Functions (2 credits)This course helps students become more organized, efficient, and powerful computer programmers by learning to research and call functions written by others; to write, call, debug, and test their own functions; and to handle errors within functions. CSE 111 students write programs with functions to solve problems in many disciplines, including business, physical science, human performance, and humanities.
CSE210 - Programming with Classes (2 credits)This course will introduce the notion of classes and objects. It will present encapsulation at a conceptual level. It will also work with inheritance and polymorphism.
WDD130 - Web Fundamentals (2 credits)Demonstrate basic proficiency in using current, valid, and semantic Hypertext Markup Language (HTML) syntax to define the structure and content of a webpage.
Demonstrate basic proficiency in using current valid Cascading Style Sheets (CSS) to style an HTML document.
Plan, design, and develop web pages and sites according to best practices of organization and maintainability.
Discover and analyze the web design and development industry as a career path.
Work effectively with others by communicating clearly, collaborating as a team member, fulfilling assignments, and meeting deadlines.
WDD131 - Dynamic Web Fundamentals (2 credits)Develop responsive web pages that follow best practices and use valid HTML and CSS.
Demonstrate proficiency with JavaScript language syntax.
Use JavaScript to respond to events and dynamically modify HTML.
WDD231 - Web-Frontend Development I (2 credits)Develop dynamic websites that use valid HTML and CSS that follow best practices of accessibility and compliance.
Create dynamic web sites that leverage browser APIs, JSON, and remote APIs.
Use industry tools to monitor performance and to optimize the user experience.

YouTuber Catherine Li - How to Learn JavaScript FAST in 2026

install vs code

To start a JavaScript (Node.js) command-line interpreter (REPL) in VS Code, you just use VS Code's integrated terminal and run Node directly. VS Code itself doesn't add a special Node console - the REPL comes from Node.js

PS C:\bb\Barefoot Betters\BB - Documents\barefootbetters.com\blog> node -v
v24.13.1
PS C:\bb\Barefoot Betters\BB - Documents\barefootbetters.com\blog> node
Welcome to Node.js v24.13.1.
Type ".help" for more information.
> let developer = 'Jeff';
undefined
> console.log(developer);
Jeff
undefined
> developer = 'Tom';
'Tom'
> console.log(developer);
Tom
undefined
>
(To exit, press Ctrl+C again or Ctrl+D or type .exit)
>
PS C:\bb\Barefoot Betters\BB - Documents\barefootbetters.com\blog> 

Variables

Old JavaScript uses var and JavaScript ES6 (2015) uses let and const. So by default use const and use let when reassignment is needed.

// example ways to declare variables
const smsSendingLimit = 1234;     // number, const is short for constant, value never changes
const MAXAGE = 100;               // custom to declare constants all uppercase
let hasPermission = true;         // boolean
var username = 'BarefootBetters'; // use let instead of var JavaScript ES6 (2015) 
let nothing;                      // undefined - absence of a value
const nothingExplicit = null;     // object instead of null (quirk)

// output variables
console.log("smsSendingLimit is a " + typeof smsSendingLimit);
console.log("hasPermission is a " + typeof hasPermission);
console.log("username is a " + typeof username);
console.log("nothing is " + typeof nothing); // undefined
console.log(`nothingExplicit is a ${typeof nothingExplicit}`); // "object" (quirk)

Also, let is block-scoped, whereas var is global or function scope.

Primitive data types are numbers, strings, booleans, null, and undefined.

Think of strings as values, not containers. Variables can point to different strings. The string never changes (immutable) but the variable does. "Changing" a string always means creating a new one, that is the variable will reference a new string. Once a string is created, you cannot change its characters directly.

String Concatenation

String concatenation is the joining of pieces of text together using the + operator, += operator, or the String object's concat() method. Note, concat() is not a method of the variable itself. Note, concat() always returns a new string and does not modify the original. So, when you write:

let a = 'Hello';
let b = a.concat(' World'); // b = 'Hello World'
a.concat(' World'); // a = 'Hello' nothing changed because you must assign the result

What’s happening is:

  1. b receives the new string
  2. 'Hello' is a string primitive
  3. JavaScript temporarily wraps it in a String object
  4. The method String.prototype.concat() is invoked
  5. A new string is returned (strings are immutable)

Template Literals (backticks)

Backticks are used for String interpolation and multiline strings

const name = 'Jeff';
const greeting = `Hello, ${name}`;

Function

A function is a reusable block of code that performs a specific task and can be called with various inputs.

Method

A method is a type of function that is associated with an object, meaning it operates on the data contained within that object. Think of the concat() method.

let str1 = 'Hello';
let str2 = 'World';

let result = str1.concat(' ', str2);
console.log(result); // Hello World

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Related Blog Posts

[divi_shortcode id="2901"]