Explore modern JavaScript in this volume containing hundreds of source code examples. Visual diagrams designed to accurately describe difficult concepts such as Prototype, Event Loop and Object Oriented Programming. JavaScript Grammar covers all important features of modern JavaScript (ES6-ES10) from simple to advanced. Each feature is explained with simple examples, so the book is easy to follow. As you progress through the book you will be faced with increasingly advanced examples with several programming techniques clearly explained and with clean code.
Author(s): Greg Sidelnikov
Publisher: Learning Curve Books
Year: 2019
Language: English
Pages: 273
JavaScript Grammar
0.1 Foreword
1 Presentation Format
1.1 Creative Communication
1.1.1 Theory
1.1.2 Practical Examples
1.1.3 Source Code
1.1.4 Color-Coded Diagrams
1.1.5 Dos and Dont's
2 Chrome Console
2.0.1 Beyond Console Log
2.0.2 console.dir
2.0.3 console.error
2.0.4 console.time() and console.timeEnd()
2.0.5 console.clear
3 Welcome To JavaScript
3.1 Entry Point
3.1.1 Dos and Dont's
3.1.2 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es10 Dynamic Import
3.2 Strict Mode
3.3 Literal Values
3.4 Variables
3.5 Passing Values By Reference
3.6 Scope Quirks
4 Statements
4.0.1 Evaluating Statements
4.0.2 Expressions
5 Primitive Types
5.0.1 boolean
5.0.2 null
5.0.3 undefined
5.0.4 number
5.0.5 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es10 bigint
5.0.6 typeof
5.0.7 string
5.0.8 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es6 Template Strings
5.0.9 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es6 Symbol
5.0.10 Executing Methods On Primitive Types
6 Type Coercion Madness
6.0.1 Examples of Type Coercion
6.0.2 Adding Multiple Values
6.0.3 Operator Precedence
6.0.4 String To Number Comparison
6.0.5 Operator Precedence & Associativity Table
6.0.6 L-value and R-value
6.0.7 null vs undefined
7 Scope
7.0.1 Scope
7.1 Variable Definitions
7.1.1 Variable Types
7.1.2 Scope Visibility Differences
7.1.3 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es6 const
7.1.4 const and Arrays
7.1.5 const and Object Literals
7.1.6 Dos and Dont's
8 Operators
8.0.1 Arithmetic
8.0.2 Assignment
8.0.3 String
8.0.4 Comparison
8.0.5 Logical
8.0.6 Bitwise
8.0.7 typeof
8.0.8 Ternary (?:)
8.0.9 delete
8.0.10 in
9 ...rest and ...spread
9.0.1 Rest Properties
9.0.2 Spread Properties
9.0.3 ...rest and ...spread
9.1 Destructuring Assignment
10 Closure
10.0.1 Arity
10.0.2 Currying
11 Loops
11.0.1 Types of loops in JavaScript
11.1 for loops
11.1.1 0-index based counter
11.1.2 The Infinite for Loop
11.1.3 Multiple Statements
11.2 for...of Loop
11.2.1 for...of and Generators
11.2.2 for...of and Strings
11.2.3 for...of and Arrays
11.2.4 for...of and Objects
11.2.5 for...of loops and objects converted to iterables
11.3 for...in Loops
11.4 While Loops
11.4.1 While and continue
12 Arrays
12.0.1 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es10 Array.prototype.sort()
12.0.2 Array.forEach
12.0.3 Array.every
12.0.4 Array.some
12.0.5 Array.filter
12.0.6 Array.map
12.0.7 Array.reduce
12.0.8 Practical Reducer Ideas
12.0.9 Dos and Dont's
12.0.10 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es10 Array.flat()
12.0.11 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es10 Array.flatMap()
12.0.12 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es10 String.prototype.matchAll()
12.0.13 Dos and Dont's
12.0.14 Comparing Two Objects
12.0.15 Writing arrcmp
12.0.16 Improving objcmp
12.0.17 Testing objcmp on a more complex object
13 Functions
13.1 Functions
13.1.1 Function Anatomy
13.1.2 Anonymous Functions
13.1.3 Assigning Functions To Variables
13.2 Origin of this keyword
14 Higher-order Functions
14.0.1 Theory
14.0.2 Definition
14.0.3 Abstract
14.0.4 Iterators
14.0.5 Dos and Dont's
15 Arrow Functions
15.0.1 Arrow Function Anatomy
16 Creating HTML Elements Dynamically
16.0.1 Setting CSS Style
16.0.2 Adding Elements To DOM with .appendChild method
16.0.3 Writing A Function To Create Elements
16.0.4 Creating objects using function constructors
17 Prototype
17.0.1 Prototype
17.0.2 Prototype on Object Literal
17.0.3 Prototype Link
17.0.4 Prototype Chain
17.0.5 Method look-up
17.0.6 Array methods
17.1 Parenting
17.1.1 Extending Your Own Objects
17.1.2 constructor property
17.1.3 Function
17.2 Prototype In Practice
17.2.1 Object Literal
17.2.2 Using Function Constructor
17.2.3 Prototype
17.2.4 Creating objects using Object.create
17.2.5 Back To The Future
17.2.6 Constructor Function
17.2.7 Along came new operator
17.2.8 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es6 The class keyword
18 Object Oriented Programming
18.1 Ingredient
18.2 FoodFactory
18.3 Vessel
18.4 Burner
18.5 Range Type and The Polymorphic Oven
18.6 Class Definitions
18.6.1 print.js
18.6.2 Ingredient
18.6.3 FoodFactory
18.6.4 Fridge
18.6.5 convert_energy_to_heat
18.6.6 Vessel
18.6.7 Burner
18.6.8 Range
18.6.9 Putting It All Together
19 Events
19.0.1 Browser Events
19.0.2 Synthetic Events
19.0.3 Event Anatomy
19.0.4 setTimeout
19.0.5 setInterval
19.0.6 Intercepting Browser Events
19.0.7 Display Mouse Position
19.0.8 Universal Mouse Event Class
20 Network Requests
20.0.1 Callback Hell
20.0.2 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es6 Promises
20.0.3 Promise.resolve
20.0.4 .then
20.0.5 .catch
20.0.6 .finally
20.0.7 Promise.reject
20.0.8 Putting It All Together
20.0.9 Promise.all
20.0.10 Promise Anatomy
20.0.11 Final Words
20.0.12 Axios
20.0.13 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es6 Fetch API
20.0.14 Fetch POST Payload
20.1 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es6 async / await
20.1.1 await
20.1.2 async / await with try-catch
20.1.3 Final Words
20.2 [height=1cm,valign=m]D:/Golden/Latex/javascriptgrammar-I/es6 Generators
20.2.1 yield
20.2.2 Catching Errors
21 Event Loop
22 Call Stack
22.1 Execution Context
22.2 Execution Context In Code
22.2.1 Window / Global Scope
22.2.2 The Call Stack
22.2.3 .call(), .bind(), .apply()
22.2.4 Stack Overflow