Index
A
- AJAX requests / The JavaScript execution model
- apply() method / The spread operator
- apply(target, thisValue, arguments) method
- array
- entries() method / The entries(), keys(), and values() method
- values() method / The entries(), keys(), and values() method
- Array.from() method / The Array.from(iterable, mapFunc, this) method
- Array.of() method / The Array.of(values…) method
- array buffers / Array buffers
- array destructuring assignment
- about / The array destructuring assignment
- values, ignoring / Ignoring values
- rest operator, using / Using the rest operator in the array destructuring assignment
- default values, for variables / Default values for variables
- nested array destructuring / Nested array destructuring
- using, as parameter / Using the destructuring assignment as a parameter
- arrays
- about / Arrays
- Array.from() method / The Array.from(iterable, mapFunc, this) method
- Array.of()method / The Array.of(values…) method
- fill() method / The fill(value, startIndex, endIndex) method
- find() method / The find(testingFunc, this) method
- findIndex() method / The findIndex(testingFunc, this) method
- copyWithin() method / The copyWithin(targetIndex, startIndex, endIndex) function
- keys() method / The entries(), keys(), and values() method
- arrow functions
- about / The arrow functions
- this value / The value of "this" in an arrow function
- differentiating, with traditional functions / Other differences between the arrow and traditional functions
- asynchronous code
- writing / Writing asynchronous code
- asynchronous code, involving callbacks
- asynchronous code, involving events
- Asynchronous Module Definition (AMD)
- about / Implementing modules – the old way
- used, for implementing modules / Asynchronous Module Definition
- attributes, of properties / The attributes of properties
B
- 32-bit integers / The Math.imul(number1, number2) function
- base object
- about / Understanding inheritance
- Battery Status API
- about / The Battery Status API
- binary notation / The binary notation
- browsers
- modules. using in / Using modules in browsers
C
- child object
- about / Understanding inheritance
- class declaration
- about / The class declaration
- classes
- using / Using classes
- defining / Defining a class
- static methods, using in / The static methods
- inheritance, implementing in / Implementing inheritance in classes
- class expression
- about / The class expression
- codePointAt() method / The codePointAt(index) method
- code unit / Working with strings
- collections
- about / Collections
- array buffers / Array buffers
- typed arrays / Typed arrays
- Set / Set
- WeakSet / WeakSet
- Map / Map
- WeakMap / WeakMap
- CommonJS
- about / Implementing modules – the old way
- used, for implementing modules / CommonJS
- computed method names
- about / The computed method names
- const keyword
- about / The const keyword
- constant variables, scope / The scope of constant variables
- objects using constant variables, referencing / Referencing the objects using constant variables
- construct(target, arguments) method
- constructor method
- result, overriding of / Overriding the result of the constructor method
- constructors, of primitive data types / The constructors of primitive data types
- copyWithin() method / The copyWithin(targetIndex, startIndex, endIndex) function
D
- data type
- about / The JavaScript data types
- default exports
- versus named exports / The default exports vs. the named exports
- default parameter values / Default parameter values
- defineProperty(target, property, descriptor) method
- about / The defineProperty(target, property, descriptor) method
- rules / Rules
- deleteProperty(target, property) method
- about / The deleteProperty(target, property) method
- rules / Rules
- derived object
- about / Understanding inheritance
- descriptor object, accessor property
- get function / Understanding the data properties and accessor properties
- set function / Understanding the data properties and accessor properties
- configurable property / Understanding the data properties and accessor properties
- enumerable property / Understanding the data properties and accessor properties
- descriptor object, data property
- value property / Understanding the data properties and accessor properties
- writable property / Understanding the data properties and accessor properties
- configurable property / Understanding the data properties and accessor properties
- enumerable property / Understanding the data properties and accessor properties
- destructuring assignment
- about / The destructuring assignment
- array destructuring assignment / The array destructuring assignment
- object destructuring assignment / The object destructuring assignment
E
- endsWith() function / The endsWith(string, index) function
- enhanced object literals
- about / The enhanced object literals
- properties, defining / Defining properties
- methods, defining / Defining methods
- computed property names / The computed property names
- entries() method / The entries(), keys(), and values() method
- enumerate(target) method
- about / The enumerate(target) method
- rules / Rules
- ES5 / Working with numbers
- ES6
- let keyword / The let keyword
- const keyword / The const keyword
- ES6 modules
- creating / Creating the ES6 modules
- importing / Importing the ES6 modules
- example / Diving into an example
- ES6 symbols
- about / The ES6 symbols
- $$typeof$$ operator / The "typeof" operator
- $$new$$ operator / The "new" operator
- using, as property keys / Using symbols as property keys
- Object.getOwnPropertySymbols() method / The Object.getOwnPropertySymbols() method
- Symbol.for(string) method / The Symbol.for(string) method
- eval() function
- modules, using in / Using modules in the eval() function
- executor
- about / The Promise constructor
- expressions
- about / Expressions
- multiline strings / Multiline strings
- raw strings / Raw strings
F
- fill() method / The fill(value, startIndex, endIndex) method
- find() method / The find(testingFunc, this) method
- findIndex() method / The findIndex(testingFunc, this) method
- floating-point arithmetic
- for of loop / The "for…of" loop
- functions
- for storing numbers / Array buffers
G
- generator method
- about / The generator method
- generators
- about / Generators
- return(value) method / The return(value) method
- throw(exception) method / The throw(exception) method
- $$yield*$$ keyword / The "yield*" keyword
- $$for of$$ keyword / The "for…of" loop
- get(target, property, receiver) method
- about / The get(target, property, receiver) method
- rules / Rules
- get method
- about / The get and set methods
- getOwnPropertyDescriptor(target, property) method
- about / The getOwnPropertyDescriptor(target, property) method
- rules / Rules
- getPrototypeOf(target) method
- about / The getPrototypeOf(target) method
- rules / Rules
H
- handler
- about / Terminology, The Proxy API
- has(target, property) method
- about / The has(target, property) method
- rules / Rules
I
- Immediately-invoked function expression (IIFE)
- about / Implementing modules – the old way
- used, for implementing modules / The Immediately-Invoked Function Expression
- includes() method / The includes(string, index) method
- inheritance
- about / Understanding inheritance
- example / Understanding inheritance
- implementing, in classes / Implementing inheritance in classes
- isExtensible(target) method
- about / The isExtensible(target) method
- rules / Rules
- isFinite() function / The Number.isFinite(number) method
- isNaN() function / The Number.isNaN(value) method
- iterable protocol
- iteration protocols
- about / The iteration protocols
- iterator protocol / The iterator protocol
- iterable protocol / The iterable protocol
- iterator protocol
- about / The iterator protocol
J
- JavaScript
- objects, creating in / Creating objects
- JavaScript APIs, based on Promises
- about / The JavaScript APIs based on Promises
- Battery Status API / The Battery Status API
- Web Cryptography API / The Web Cryptography API
- JavaScript data types
- about / The JavaScript data types
- number / The JavaScript data types
- string / The JavaScript data types
- Boolean / The JavaScript data types
- null / The JavaScript data types
- undefined / The JavaScript data types
- symbol / The JavaScript data types
- object / The JavaScript data types
- JavaScript execution model
- about / The JavaScript execution model
- JavaScript modules
- jQuery
- about / Writing asynchronous code
K
- keys() method / The entries(), keys(), and values() method
L
- let keyword
- about / The let keyword
- function scoped variables, declaring / Declaring function scoped variables
- block scoped variables, declaring / Declaring block scoped variables
- variables, re-declaring / Re-declaring variables
M
- Map / Map
- Math
- about / Doing Math
- trigonometry related operations / Trigonometry related operations
- arithmetic related operations / Arithmetic related operations
- Math.clz32()function / The Math.clz32(number) function
- Math.fround() function / The Math.fround(number) function
- Math.imul() function / The Math.imul(number1, number2) function
- Math.sign() function / The Math.sign(number) function
- Math.trunc() function / The Math.trunc(number) function
- miscellaneous methods
- about / Miscellaneous methods
- Math.imul() function / The Math.imul(number1, number2) function
- Math.clz32() function / The Math.clz32(number) function
- Math.sign() function / The Math.sign(number) function
- Math.trunc() function / The Math.fround(number) function
- modular programming
- benefits / The JavaScript modules in a nutshell
- module loader
- about / The module loader
- Module Loader API
- about / Using modules in browsers
- modules
- implementing / Implementing modules – the old way, Implementing modules – the new way
- implementing, Immediately-invoked function expression (IIFE) used / The Immediately-Invoked Function Expression
- implementing, Asynchronous Module Definition (AMD) used / Asynchronous Module Definition
- implementing, CommonJS used / CommonJS
- implementing, Universal Module Definition (UMD) used / Universal Module Definition
- using, in browsers / Using modules in browsers
- using, in eval() function / Using modules in the eval() function
N
- named exports
- versus default exports / The default exports vs. the named exports
- new.target implicit parameter / The "new.target" implicit parameter
- new operator / The "new" operator
- Node.js
- about / CommonJS
- non-tail calls
- converting, into tail calls / Converting the non-tail calls into the tail calls
- normalization
- about / Normalization
- case study / A case study
- URL / Template strings
- Number.EPSILON property / The Number.EPSILON property
- Number.isFinite() method / The Number.isFinite(number) method
- Number.isInteger() method / The Number.isInteger(number) method
- Number.isNaN() method / The Number.isNaN(value) method
- Number.isSafeInteger() method / The Number.isSafeInteger(number) method
- numbers
- working with / Working with numbers
- binary notation / The binary notation
- octal notation / The octal notation
- Number.isInteger() method / The Number.isInteger(number) method
- Number.isNaN() method / The Number.isNaN(value) method
- Number.isNaN()method / The Number.isNaN(value) method
- Number.isFinite() method / The Number.isFinite(number) method
- Number.isSafeInteger() method / The Number.isSafeInteger(number) method
O
- object
- about / Object
- __proto__ property / The __proto__ property
- Object.is() method / The Object.is(value1, value2) method
- Object.setPrototypeOf() method / The Object.setPrototypeOf(object, prototype) method
- Object.assign() method / The Object.assign(targetObj, sourceObjs…) method
- object-oriented JavaScript
- about / Understanding the Object-oriented JavaScript
- JavaScript data types / The JavaScript data types
- Object.assign() method / The Object.assign(targetObj, sourceObjs…) method
- Object.getOwnPropertySymbols() method / The Object.getOwnPropertySymbols() method
- Object.is() method / The Object.is(value1, value2) method
- object destructuring assignment
- about / The object destructuring assignment
- default values, for variables / Default values for the variables
- computed property names, destructing / Destructuring computed property names
- nested objects, destructing / Destructuring nested objects
- using, as parameter / Using the object destructuring assignment as a parameter
- object literals
- super keyword, using in / Using "super" in the object literals
- objects
- creating, in JavaScript / Creating objects
- octal notation / The octal notation
- ownKeys(target) method
- about / The ownKeys(target) method
- rules / Rules
P
- parent object
- about / Understanding inheritance
- Perl / The destructuring assignment
- preventExtensions(target) method
- about / The preventExtensions(target) method
- rules / Rules
- primitive data types
- about / The JavaScript data types
- constructors / The constructors of primitive data types
- Promise pattern
- about / Promises to the rescue
- Promise constructor / The Promise constructor
- states / The Promise constructor
- fulfillment value / The fulfillment value
- then(onFulfilled, onRejected) method / The then(onFulfilled, onRejected) method
- catch(onRejected) method / The catch(onRejected) method
- Promise.resolve(value) method / The Promise.resolve(value) method
- Promise.reject(value) method / The Promise.reject(value) method
- Promise.all(iterable) method / The Promise.all(iterable) method
- Promise.race(iterable) method / The Promise.race(iterable) method
- properties
- attributes / The attributes of properties
- property keys
- ES6 symbols, using as / Using symbols as property keys
- prototype methods
- about / The prototype methods
- get / The get and set methods
- set / The get and set methods
- generator / The generator method
- proxies
- about / Proxies in a nutshell
- use cases / The uses of proxies
- Proxy.revocable(target, handler) method
- about / The Proxy.revocable(target, handler) method
- use case / Use Case
- Proxy API
- about / The Proxy API
- Python / Working with strings
R
- Reflect.apply(function, this, args) method
- Reflect.construct(constructor, args, prototype) method
- Reflect.defineProperty(object, property, descriptor) method
- Reflect.deleteProperty(object, property) method
- Reflect.enumerate(object) method
- Reflect.get(object, property, this) method
- Reflect.getOwnPropertyDescriptor(object, property) method
- Reflect.getPrototypeOf(object) method
- Reflect.has(object, property) method
- Reflect.isExtensible(object) method
- Reflect.ownKeys(object) method
- Reflect.preventExtensions(object) method
- Reflect.set(object, property, value, this) method
- Reflect.setPrototypeOf(object, prototype) method
- Reflect object
- about / The Reflect object
- Reflect.apply(function, this, args) method / The Reflect.apply(function, this, args) method
- Reflect.construct(constructor, args, prototype) method / The Reflect.construct(constructor, args, prototype) method
- Reflect.defineProperty(object, property, descriptor) method / The Reflect.defineProperty(object, property, descriptor) method
- Reflect.deleteProperty(object, property) method / The Reflect.deleteProperty(object, property) method
- Reflect.enumerate(object) method / The Reflect.enumerate(object) method
- Reflect.get(object, property, this) method / The Reflect.get(object, property, this) method
- Reflect.set(object, property, value, this) method / The Reflect.set(object, property, value, this) method
- Reflect.getOwnPropertyDescriptor(object, property) method / The Reflect.getOwnPropertyDescriptor(object, property) method
- Reflect.getPrototypeOf(object) method / The Reflect.getPrototypeOf(object) method
- Reflect.setPrototypeOf(object, prototype) method / The Reflect.setPrototypeOf(object, prototype) method
- Reflect.has(object, property) method / The Reflect.has(object, property) method, The Reflect.isExtensible(object) method
- Reflect.preventExtensions(object) method / The Reflect.preventExtensions(object) method
- Reflect.ownKeys(object) method / The Reflect.ownKeys(object) method
- repeat() method / The repeat(count) method
- RequireJS
- about / Asynchronous Module Definition
- rest operator / Using the rest operator in the array destructuring assignment
- rest parameter / The rest parameter
- return(value) method / The return(value) method
- Ruby / Working with strings
S
- Set
- set(target, property, value, receiver) method
- about / The set(target, property, value, receiver) method
- rules / Rules
- set method
- about / The get and set methods
- setPrototypeOf(target, prototype) method
- about / The setPrototypeOf(target, prototype) method
- rules / Rules
- spread operator
- about / The spread operator
- uses / Other usages of the spread operator
- array values, merging with another array / Making array values a part of another array
- array values, pushing to another array / Pushing the values of an array into another array
- multiple arrays, spreading / Spreading multiple arrays
- startsWith() method / The startsWith(string, index) method
- states, Promise pattern
- fulfilled / The Promise constructor
- rejected / The Promise constructor
- pending / The Promise constructor
- settled / The Promise constructor
- static methods
- using, in classes / The static methods
- String.fromCodePoint() method / The String.fromCodePoint(number1, …, number 2) method
- strings
- working with / Working with strings
- larger code points, escaping / Escaping larger code points
- codePointAt() method / The codePointAt(index) method
- String.fromCodePoint() method / The String.fromCodePoint(number1, …, number 2) method
- repeat() method / The repeat(count) method
- includes() method / The includes(string, index) method
- startsWith() method / The startsWith(string, index) method
- endsWith() function / The endsWith(string, index) function
- normalization / Normalization
- template strings / Template strings
- expressions / Expressions
- subobject
- about / Understanding inheritance
- super keyword
- using, in object literals / Using "super" in the object literals
- superobject
- about / Understanding inheritance
- Symbol() function / The ES6 symbols
- Symbol.for(string) method / The Symbol.for(string) method
- Symbol.species static accessor property / The "Symbol.species" static accessor property
T
- tag function / Expressions
- tagged template string / Expressions
- tail-recursion / The tail call optimization
- tail call
- about / The tail call optimization
- tail call optimization
- about / The tail call optimization
- tail calls
- non-tail calls, converting into / Converting the non-tail calls into the tail calls
- target
- about / Terminology, The Proxy API
- target constructor
- terminologies, proxies
- target / Terminology
- traps / Terminology
- handler / Terminology
- throw(exception) method / The throw(exception) method
- traps
- about / Terminology, Traps
- get(target, property, receiver) method / The get(target, property, receiver) method
- set(target, property, value, receiver) method / The set(target, property, value, receiver) method, Rules
- has(target, property) method / The has(target, property) method, Rules
- isExtensible(target) method / The isExtensible(target) method
- getPrototypeOf(target) method / The getPrototypeOf(target) method, Rules
- setPrototypeOf(target, prototype) method / The setPrototypeOf(target, prototype) method
- preventExtensions(target) method / The preventExtensions(target) method, Rules
- getOwnPropertyDescriptor(target, property) method / The getOwnPropertyDescriptor(target, property) method, Rules
- defineProperty(target, property, descriptor) method / The defineProperty(target, property, descriptor) method, Rules
- deleteProperty(target, property) method / The deleteProperty(target, property) method
- enumerate(target) method / The enumerate(target) method
- ownKeys(target) method / The ownKeys(target) method
- apply(target, thisValue, arguments) method / The apply(target, thisValue, arguments) method
- construct(target, arguments) method / The construct(target, arguments) method
- typed arrays
- about / Typed arrays
- constructors / Typed arrays
- typeof operator / The "typeof" operator
U
- Unicode string normalization
- URL / A case study
- Universal Module Definition (UMD)
- about / Implementing modules – the old way
- used, for implementing modules / Universal Module Definition
- UTF-8 / Working with strings
- UTF-16 / Working with strings
V
- values() method / The entries(), keys(), and values() method
W
- WeakMap / WeakMap
- WeakSet
- differentiating, with Set / WeakSet
- Web Cryptography API
- about / The Web Cryptography API
- web workers / The JavaScript execution model
- well-known symbols
- about / The well-known symbols
- WHATWG
- URL / The module loader
Y
- yield* keyword / The "yield*" keyword