-
Notifications
You must be signed in to change notification settings - Fork 0
Effective Javascript Repositories
The idea of the following collection of repositories is to convert the knowledge into own created mini projects, made with the help of the book "Effective JavaScript 68 Specific Ways to Harness the Power of JavaScript by David Herman". Also they should help to confirm the content of the book and can be used as a prop. Another benefit is that by reading the book, the mini projects get a much stronger validation.
- NOTE:
I bought the book Effective JavaScript 68 Specific Ways to Harness the Power of JavaScript by David Herman in 2017. This means that some concepts and best practices used in the mini-projects may be out of date. Since the book I'm using is older, I won't adapt new concepts and best practices in the mini-projects. This also applies to upcoming mini-projects.
Please, feel free to use them^^!
The following tools were used:
- Google Chrome and its debugging tools
- Notepad++ for coding
- PaintNET for simple picture editing
- LINK is 💀 (
UnFREEz 2.1 for generating animated GIFs) - Desktop PC (This means the mini projects were not made with nor supported for mobile technology)
Basic requirements:
- Basic knowledge in HTML
- Basic knowledge in HTML style
- Basic knowledge in programming (What is a "function, loop, if-statement, data type, variable)
- The knowledge gained through the mini-projects mostly builds on one another
STILL IN WORK!!
-
1.1.Javascript-keyword-const-
Description
Checking if the keyword "const" can be used as a synonym for keyword "var" -
1.2.Javascript-strict-mode-
Description
Testing strict mode in Javascript
-
1.3.Javascript-concatenating-strict-files-
Description
Checking how strict mode works when concatenating two js files -
1.4.Javascript-wrapping-strict-mode-
Description
Wrapping the body of two js files to achieve safe strict mode use
-
2.1.Javascript-floating-point-overview-
Description
Calculates bits to integer, integer to bits and some interesting floating point examples. Check the wiki for detailed information!
-
3.1.Javascript-overloaded-plus-operator-
Description
Shows the overloaded options of the operator +
-
3.2.Javascript-bitwise-operations-with-string-inputs-
Description
Shows that string numbers are converted internally to integers when using specific bitwise operations
-
3.3.Javascript-NaN-
Description
Checking if e.g. an object or variable is NaN
-
3.4.Javascript-valueOf-and-toString-
Description
Checking which of those two functions is prioritized when using plus operator -
3.5.Javascript-truthiness-undefined-
Description
Checking how undefined string and number variables handles truthiness
-
4.1.Javascript-object-and-primitive-strings-
Description
Comparing primitive string with object string
-
5.1.Javascript-comparison-equal-operators-
Description
Checking the difference between "==" and "==="
-
5.2.Javascript-rules-for-equal-to-operator-
Description
Testing the "==" operator with different types and explaining why
-
6.1.Javascript-semicolon-first-rule-
Description
Checking one of three rules of how to insert semicolons
-
6.2.Javascript-semicolon-second-rule-
Description
Checking one of three rules of how to insert semicolons
-
6.3.Javascript-semicolon-third-rule-
Description
Checking one of three rules of how to insert semicolons
-
7.1.Javascript-unicode-
Description
Testing unicode characters with ANSI and UTF-8
-
(8 & 9).1.Javascript-global-variables-ex-var-
Description
Shows that global variables can be initialized without keyword var
-
10.1.Javascript-keyword-with-
Description
Showing the use of keyword "with" with the help of a simple sentence generator
-
11.1.Javascript-closures-fact-one-
Description
Showing the first of three facts about closures with the help of a simple calculation
-
11.2.Javascript-closures-fact-two-
Description
Showing the second of three facts about closures
-
11.3.Javascript-closures-fact-three-
Description
Showing the last of three facts about closures
-
12.1.Javascript-variable-hoisting-
Description
Showing variable hoisting by implementing a very simplified game
-
12.2.Javascript-hoisting-and-try-catch-
Description
Showing how variable hoisting behaves with try...catch
-
13.1.Javascript-IFFE-and-local-scopes-
Description
Use and transport of a minimum understanding of IFFE and local scopes
-
14.1.Javascript-recursive-function-
Description
Testing a recursive function by implementing a small binary tree and showing an interesting problem
-
15.1.Javascript-block-local-function-declarations-
Description
Showing an example of function declaration in combination with local block scoping
-
(16 & 17).1.Javascript-function-eval-
Description
Explaining eval with the help of a nested function and indirect/direct call
-
18.1.Javascript-function-method-constructor-call-
Description
Showing the difference between function-, method- and constructor call by telling three black humor jokes
-
18.2.Javascript-a-little-bit-about-this-
Description
Showing a small extract about the keyword "this"
-
19.1.Javascript-higher-order-functions-
Description
Showing an use of higher order functions with "forEach", "map", "filter", "reduce", "reduceRight" and "sort".
-
19.2.Javascript-an-own-high-order-function-
Description
Showing when to implement an own High-order function
-
20.1.Javascript-dictonary-object-and-hasOwnProperty-
Description
Showing a dictonary object and how to destroy and repair its "hasOwnProperty" method
-
20.2.Javascript-call-methods-with-call-
Description
Using the js method "call" in combination with a high-order-fnction among others to put objects from a shelf to a cart
-
21.1.Javascript-use-of-apply-
Description
Testing the use of js method "apply" with the help of an own made and strongly simplified face customizer
-
22.1.Javascript-variadic-functions-and-arguments-
Description
Implementing the variadic function as a small wrapper by using the js object "arguments".
-
23.1.Javascript-shifting-
Description
Using the javascript method "shift" in a marginal and unimproved tic tac toe game
-
23.2.Javascript-slicing-
Description
Visualizing the javascript method "slice" by slicing a cake into slices
-
23.3.Javascript-modifying-arguments-object-
Description
Converting the js object "arguments" into an array
-
24.1.Javascript-save-arguments-into-a-variable-
Description
Saving the object "arguments" to a variable for realizing recylable parameters
-
25.1.Javascript-binding-
Description
Explaining with the help of js "forEach" method and a puzzle as content the use of the js method "bind"
-
26.1.Javascript-bind-and-curry-
Description
Using currying with the help of the javascript method "bind"
-
27.1.Javascript-closures-over-strings-
Description
Using a very simplified benchmark to show why it is not always effective to use string as code
-
28.1.Javascript-output-code-as-string-
Description
Using javascript`s "toString" function to output code as string
-
29.1.Javascript-recursion-with-arguments.callee-
Description
Using the js property "arguments.callee" to implement the Fibonacci sequence
-
29.2.Javascript-stack-trace-with-caller-
Description
Showing a limited way of stack tracing with function property "caller"
-
30.1.Javascript-prototype-and-instance-
Description
Using prototype and inheriting properties using an instance
-
(31 & 32).1.Javascript-operator-in-
Description
Using operator "in" within a very simplified math guessing game
-
(31 & 32).2.Javascript-getPrototypeOf-proto-and-prototype-hierarchy
Description
Showing the prototype hierarchy with a tree diagramm and explaining within the wiki getPrototypeOf and proto
-
33.1.Javascript-new-agnostic
Description
Showing what could happened if keyword new is not used when creating an instance
-
34.1.Javascript-methods-on-prototypes-
Description
Shows the difference in memory usage between storing methods on prototypes and directly in instances
-
35.1.Javascript-getOwnPropertyNames-and-Object.keys-
Description
Shows a difference between getOwnPropertyNames and Object.keys
-
35.2.Javascript-storing-private-data-
Description
Using closures to store private data
-
36.1.Javascript-mutable-data-and-prototypes-
Description
Showing that mutable data could be problematic when used in prototypes
-
37.1.Javascript-different-use-of-OR-
Description
Contains a trivia game of bet by an interesting use of ||
-
37.2.Javascript-methods-split-and-join-
Description
Using split and join to dismantle three simple formular of uniformly accelerated motion
-
37.3.Javascript-RegExp-methods-match-and-test-
Description
Using RegExp methods match and test in a very simple and quiz like regex tester
-
37.4.Javascript-implict-binding-of-this-
Description
Parsing a CSV file by using implicit binding of this
Sources: