Learn JavaScript from scratch by solving over a hundred different coding challenges. Go here for the interactive browser version: https://scrimba.com/learn/learnjavascript
⭐️ Code ⭐️
Two versions:
🔗 Interactive version: https://scrimba.com/learn/learnjavascript
🔗 GitHub repo: https://github.com/scrimba/learn-javascript
✏️ Created by Per Harald Borgen. Per on Twitter: https://twitter.com/perborgen
00:00 Intro
03:41 Passenger counter app
04:39 Setting up file
07:42 Create variable
12:27 Mathematical operations
16:16 Reassigning & incrementing
19:23 Adding button
21:41 onclick event listener
25:10 Using functions to write less code
28:48 First function
29:34 Function that logs sum
32:25 Function that increments
34:23 Increment on clicks
36:35 Display count
41:53 Document Object Model
43:47 Display count w/ innerText
44:30 Create save button
46:40 What is string?
48:16 First string variable
52:00 Log greeting to console
53:18 Strings vs. Numbers
56:07 Render welcome message
58:10 Improve message w/ string concatenation
1:00:28 Use plus equal for count
1:00:57 Create save feature
1:05:38 Debugging online
1:09:31 Set count to 0
1:12:28 Recap
1:15:47 Variables practice
1:17:42 Concatenate strings
1:18:43 Incrementing & decrementing
1:20:56 Strings & numbers
1:22:35 Rendering error message
1:25:52 Calculator challenge
Build Blackjack Game
1:31:27 Build Blackjack game
1:32:27 Add firstCard, secondCard, & sum
1:33:23 If…else conditionals
1:39:08 if…else statement
1:42:05 if/else…if/else statement
1:45:28 if…else statement for our game
1:47:32 hasBlackJack variable
1:49:38 isAlive variable
1:51:27 Practice boolean conditions
1:54:55 Add message variable
1:58:20 Link stylesheet
2:00:56 Add basic styling
2:05:19 Make start button work
2:11:13 Display message
2:13:48 Display sum
2:19:36 Display cards
2:21:34 New card button
2:25:16 Add to sum when newCard is clicked
2:28:36 Rename startGame function
2:30:52 Solving our cards problem w/ array
2:34:12 Arrays intro
2:39:30 Array indexes
2:43:50 Arrays w/ multiple data types
2:46:12 Adding & removing items from arrays
2:50:35 Creating cards array
2:51:43 Push new card to array
2:53:05 Counting
2:57:10 Loops
3:00:37 For loops & arrays
3:04:23 First array-based for loop
3:05:55 For loops, arrays, & DOM
3:08:55 Use loop to render cards
3:11:16 Avoid hard-coding values
3:12:51 Returning values
3:17:54 Use function to set card values
3:21:05 Generating random numbers w/ Math.random()
3:25:24 Math.random() * 6
3:27:11 Flooring number w/ Math.floor()
3:28:40 Create dice
3:30:23 Completing dice function
3:33:04 Make getRandomCard() work
3:36:00 getRandomNumber function
3:39:06 Assign values in startGame function
3:41:52 Card feature is broken
3:42:54 Logical AND operator
3:46:39 Logical operators
3:48:47 logical OR operator
3:51:52 Only trigger newCard() if you’re allowed to
3:53:23 Object sneak peek
3:58:02 Objects
4:02:47 Create first object
4:06:08 Store player data
4:08:48 Methods on object
4:10:50 Recap
4:15:17 Objects & functions
4:17:21 if else
4:20:13 Loops & arrays
4:22:21 push, pop, unshift, shift challenge
4:25:50 Logical operators
4:27:50 Rock papers scissors
4:30:52 Sorting fruits
Build Chrome Extension
4:33:54 Build Chrome Extension
4:38:30 Add button & input tag
4:40:06 Style button & input tag
4:47:28 Make input button work w/ onclick
4:48:49 Refactor to addEventListener
4:51:11 addEventListener()
4:52:58 Refactoring
4:54:25 Create myLeads array & inputEl
4:56:49 Using let & const
5:00:11 Push to myLeads array
5:01:24 Push value from input field
5:03:56 Use for loop to log out leads
5:05:38 Create unordered list
5:07:39 Render leads in unordered list
5:11:22 How to render li elements w/ innerHTML
5:13:01 innerHTML
5:14:34 More innerHTML practice
5:16:26 Render li elements w/ innerHTML
5:17:37 Use createElement() & append() instead of innerHTML
5:21:16 Improving performance of our app
5:24:37 Create render function
5:26:40 Clear input field
5:28:47 Add a tag
5:35:53 Template strings
5:35:54 Write template string
5:36:28 Make template string more dynamic
5:37:12 Template strings on multiple lines
5:41:03 Refactor app to use template string
5:42:19 Style list
5:46:13 Preparing deployment
5:51:08 Deploying Chrome Extension
5:53:40 What is localStorage?
5:56:45 First localStorage
6:00:38 Storing arrays in localStorage
6:07:05 Save leads
6:09:36 Get leads
6:13:31 Truthy & falsy values
6:21:28 Guess expression: truthy or falsy?
6:23:52 Checking localStorage before rendering
6:27:33 Style delete button
6:30:52 Make delete button work
6:35:12 How function parameters can improve our code
6:41:09 Write function parameter
6:44:40 Functions w/ multiple params
6:47:54 Numbers as function params
6:49:40 Arguments vs Params
6:53:06 Arrays as params
6:55:02 Refactor renderLeads() to use parameter
6:56:46 Create tabBtn
7:00:07 Save tab url
7:02:46 Get current tab
7:07:09 Use Chrome API to get tab
7:13:32 Deploy final version
7:15:48 Recap
7:21:34 Practice
7:41:55 Outro
source
Thanks a lot for sharing our course, freeCodeCamp! ❤️
If anyone wants to check out the interactive version of the course, click here 👉 https://scrimba.com/learn/learnjavascript
We also share tutorials & career advice for newbie devs on our YouTube channel, so please follow us if you're interested in that 😎
I've just watched full video and it was very well explained. Thank you 🙂
what will be the optimal solution for this problem . we have array of objects . we have to check if a object has value greater than 3 . if we have . we need to multiply it to 10 . example : question : arr = [{"a":1},{"b":4, "c": 1},{},{"d":5}], solution : arr = [{"a":1},{"b":40, "c": 1},{},{"d":50}]
So, I use Visual Studio Code, not Scrimba, while following along with this. Can you explain how I can do the "download as zip" for the chrome extention without Scrimba?
I have one question – why after – Previous entries: is shown 0 – instead of an empty space before counting?
Very big congratulations to you on this. It's perfectly done.
i really love this instructor, he has good sense of humor and his explanation is very clear.
Thank You For This
stoped it at 40:00 (dont mind this comment)
better than paid ones! thanks for explaining bit by bit may Allah grant you better things
Woooow, wooow just wow, full course
what was the code for arrays and loops at the 3rd hour? the console was blocking it
1:32:56
3:53:23
4:33:54
3:21:04
awesome, the best tutorial i have seen in JS.
a really good learning experience, really fun class thx
Great teaching!
With the rate I am learning to code. I'll probably be standing outside in the cold counting passengers.
Does this video cover the necessary concepts needed to understand JS under the hood? Interviewers ask for more than just projects. They need to know you understand how it all works, not just how to put things together.
This Scrimba man is the best, his lessons are funny and I now love JavaScript because of his teaching style. 👍👍👍👍
I love this. Thank you for making me understand and very simply at that.
My Bookmarks :
Day 1 = 1:05:36
Day 2 = 1:58:20
Day 3 = 2:30:53
I was looking for your html and css video
1:23:13 damn i was trying to fix my bug for like 10 minutes then i realised i forgot to put brackets after the onclick id
How do you display the console window @11:00
Right now I am at 6:11:04 and , I can't resist myself to appreciate the this course. The methodoloy is really very articulate, how he breaks down the complex problems into smaller parts and then solve it. Every second is worth it. Thank you!
When I am running the code of the subway passenger counter it is showing me the error.
Uncaught Reference Error : document is not defined.
I am new to Java script So please help me.
— 40 minutes of course —
May someone expalin me why when I try to execute this "let countEl = document.getElementById("count-el")" it returns me an error "ReferenceError: document is not defined" It is really consufed at the begining… :/
I really like the idea of giving me the time to think and firstly letting to figure out the problem on my own.