# A Smarter Way To Learn JavaScript | Learn It Faster & Remember It Longer!

**URL:** <https://onehack.st/t/a-smarter-way-to-learn-javascript-learn-it-faster-remember-it-longer/172083>\
**Category:** Tutorials & Methods\
**Tags:** programming, hacking, tips-tricks\
**Created:** [February 7, 2021, 1:49pm UTC](https://onehack.st/t/a-smarter-way-to-learn-javascript-learn-it-faster-remember-it-longer/172083 "2021-02-07T13:49:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![TheStrength](https://onehack.st/user_avatar/onehack.st/thestrength/32/46753_2.png) [@TheStrength](https://onehack.st/u/TheStrength)\
**Post date:** [February 7, 2021, 1:49pm UTC](https://onehack.st/t/a-smarter-way-to-learn-javascript-learn-it-faster-remember-it-longer/172083/1 "2021-02-07T13:49:07Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/1/d/1df354c7cdbec2262282a944165892be117093ed.jpeg)

**Introduction:**

Study, practice, then rest. If you’re intent on mastering the fundamentals of JavaScript, as opposed to just getting a feel for the language, work with this book and the online exercises in a 15-to-30-minute session, then take a break. Study a chapter for 5 to 10 minutes, practicing the lesson until you’ve coded everything correctly. Then go for a walk.

Use the largest, most colorful screen available. This book can be read on small phone screens and monochrome readers, but you’ll be happier if things appear in color on a larger screen. I use color as an important teaching tool, so if you’re reading in black-andwhite, you’re sacrificing some of the extra teaching value of a full-color ebook. Colored elements do show up as a lighter shade on some black-and-white screens, and on those devices the effect isn’t entirely lost, but full color is better. As for reading on a larger screen— the book includes more than 2,000 lines of example code. Small screens break long lines of code into awkward, arbitrary segments, jumbling the formatting. While still decipherable, the code becomes harder to read. If you don’t have a mobile device that’s ideal for this book, consider installing the free Kindle reading app on your laptop.

If you’re reading on a mobile device, go horizontal. For some reason, I resist doing this on my iPad unless I’m watching a video. But even I, Vern Vertical, put my tablet into horizontal mode to proof this book. So please: starting with Chapter 1, do yourself a favor and rotate your tablet, reader, or phone to give yourself a longer line of text. It’ll help prevent the unpleasant code jumble mentioned above.

Do the coding exercises on a physical keyboard. A mobile device can be ideal for reading, but it’s no way to code. Very, very few Web developers would attempt to do their work on a phone. The same thing goes for learning to code. Theoretically, most of the interactive exercises could be done on a mobile device. But the idea seems so perverse that I’ve disabled online practice on tablets, readers, and phones. Read the book on your mobile device if you like. But practice on your laptop.

If you have an authority problem, try to get over it. When you start doing the exercises, you’ll find that I can be a pain about insisting that you get every little detail right. For example, if you indent a line one space instead of two spaces, the program monitoring your work will tell you the code isn’t correct, even though it would still run perfectly. Do I insist on having everything just so because I’m a control freak? No, it’s because I have to place a limit on harmless maverick behavior in order to automate the exercises. If I were to grant you as much freedom as you might like, creating the algorithms that check your work would be, for me, a project of driverless-car proportions. Besides, learning to write code with fastidious precision helps you learn to pay close attention to details, a fundamental requirement for coding in any language. Subscribe, temporarily, to my formatting biases. Current code formatting is like seventeenth-century spelling. Everyone does it his own way. There are no universally accepted standards. But the algorithms that check your work when you do the interactive exercises need standards. They can’t grant you the latitude that a human teacher could, because, let’s face it, they aren’t that bright. So I’ve had to settle on certain conventions.

All of the conventions I teach are embraced by a large segment of the coding community, so you’ll be in good company. But that doesn’t mean you’ll be married to my formatting biases forever. When you begin coding projects, you’ll soon develop your own opinions or join an organization that has a stylebook. Until then, I’ll ask you to make your code look like my code.

Email me with any problems or questions. The book and exercises have been tested on many learners, but haven’t been tested on you. If you hit a snag, if you’re just curious about something, or if I’ve found some way to give you fits, email me at [mark@ASmarterWayToLearn.com](mailto:mark@ASmarterWayToLearn.com). I’ll be happy to hear from you. I’ll reply promptly. And, with your help, I’ll probably learn something that improves the next edition.

**Chapters**

1. Alerts
2. Variables for Strings
3. Variables for Numbers
4. Variable Names Legal and Illegal
5. Math Expressions: familiar operators
6. Math Expressions: unfamiliar operators
7. Math Expressions: eliminating ambiguity
8. Concatenating text strings
9. Prompts
10. if statements
11. Comparison operators
12. if…else and else if statements
13. Testing sets of conditions
14. if statements nested
15. Arrays
16. Arrays: adding and removing elements
17. Arrays: removing, inserting, and extracting elements
18. for loops
19. for loops: flags, Booleans, array length, and breaks
20. for loops nested
21. Changing case
22. Strings: measuring length and extracting parts
23. Strings: finding segments
24. Strings: finding a character at a location
25. Strings: replacing characters
26. Rounding numbers
27. Generating random numbers
28. Converting strings to integers and decimals
29. Converting strings to numbers, numbers to strings
30. Controlling the length of decimals
31. Getting the current date and time
32. Extracting parts of the date and time
33. Specifying a date and time
34. Changing elements of a date and time
35. Functions
36. Functions: passing them data
37. Functions: passing data back from them
38. Functions: local vs. global variables
39. switch statements: how to start them
40. switch statements: how to complete them
41. while loops
42. do…while loops
43. Placing scripts
44. Commenting
45. Events: link
46. Events: button
47. Events: mouse
48. Events: fields
49. Reading field values
50. Setting field values
51. Reading and setting paragraph text
52. Manipulating images and text
53. Swapping images
54. Swapping images and setting classes
55. Setting styles
56. Target all elements by tag name
57. Target some elements by tag name
58. The DOM
59. The DOM: Parents and children
60. The DOM: Finding children
61. The DOM: Junk artifacts and nodeType
62. The DOM: More ways to target elements
63. The DOM: Getting a target’s name
64. The DOM: Counting elements
65. The DOM: Attributes
66. The DOM: Attribute names and values
67. The DOM: Adding nodes
68. The DOM: Inserting nodes
69. Objects
70. Objects: Properties
71. Objects: Methods
72. Objects: Constructors
73. Objects: Constructors for methods
74. Objects: Prototypes
75. Objects: Checking for properties and methods
76. Browser control: Getting and setting the URL
77. Browser control: Getting and setting the URL another way
78. Browser control: Forward and reverse
79. Browser control: Filling the window with content
80. Browser control: Controlling the window’s size and location
81. Browser control: Testing for popup blockers
82. Form validation: text fields
83. Form validation: drop-downs
84. Form validation: radio buttons
85. Form validation: ZIP codes
86. Form validation: email
87. Exceptions: try and catch
88. Exceptions: throw
89. Handling events within JavaScript

[Download PDF](https://mega.nz/file/SCYBxaKD#zlW-S-TiTdI50i-bNLJzUsqmsQ9K3aYoDHB1Xoh0F0Y)

**Happy learning!**

---

<div class="post-metadata">

**Author:** ![Haxe\_McGe](https://onehack.st/user_avatar/onehack.st/haxe_mcge/32/74711_2.png) [@Haxe\_McGe](https://onehack.st/u/Haxe_McGe)\
**Post date:** [August 19, 2021, 8:51pm UTC](https://onehack.st/t/a-smarter-way-to-learn-javascript-learn-it-faster-remember-it-longer/172083/2 "2021-08-19T20:51:20Z")

</div>

New Link:  
[https://anonfiles.com/L4HaW3C2u4/A\_Smarter\_Way\_To\_Learn\_Javascript\_rar](https://anonfiles.com/L4HaW3C2u4/A_Smarter_Way_To_Learn_Javascript_rar)  
**Enjoy!** 👍
