Author(s): Flavio Copes
Year: 2018
Language: English
Pages: 1253
Preface......Page 11
JavaScript......Page 12
Introduction to JavaScript......Page 13
ECMAScript......Page 16
ES6......Page 20
ES2016......Page 32
ES2017......Page 34
ES2018......Page 40
Coding style......Page 45
Lexical Structure......Page 49
Variables......Page 53
Types......Page 56
Expressions......Page 60
Prototypal inheritance......Page 63
Classes......Page 66
Exceptions......Page 70
Semicolons......Page 72
Quotes......Page 76
Template Literals......Page 78
Functions......Page 83
Arrow Functions......Page 93
Closures......Page 96
Arrays......Page 98
Loops......Page 107
Events......Page 111
The Event Loop......Page 118
Asynchronous programming and callbacks......Page 128
Promises......Page 133
Async and Await......Page 139
Loops and Scope......Page 143
Timers......Page 146
this......Page 150
Strict Mode......Page 154
Immediately-invoked Function Expressions (IIFE)......Page 161
Math operators......Page 164
The Math object......Page 169
ES Modules......Page 173
CommonJS......Page 178
Glossary......Page 180
CSS......Page 185
Introduction to CSS......Page 186
CSS Grid......Page 196
Flexbox......Page 212
CSS Custom Properties......Page 224
PostCSS......Page 230
How to center things in modern CSS......Page 235
The CSS margin property......Page 239
CSS System Fonts......Page 242
Style CSS for print......Page 247
CSS Transitions......Page 254
CSS Animations......Page 263
Web Platform......Page 272
The DOM......Page 273
Progressive Web Apps......Page 282
Service Workers......Page 289
XHR......Page 297
Fetch API......Page 301
Channel Messaging API......Page 309
Cache API......Page 313
Push API......Page 317
Notifications API......Page 328
IndexedDB......Page 332
Selectors API......Page 340
Web Storage API......Page 343
Cookies......Page 350
History API......Page 359
Efficiently load JavaScript with defer and async......Page 363
The WebP Image Format......Page 368
SVG......Page 372
Data URLs......Page 391
CORS......Page 394
Web Workers......Page 400
requestAnimationFrame......Page 407
Console API......Page 412
WebSockets......Page 426
The Speech Synthesis API......Page 430
The DOCTYPE......Page 438
v8......Page 441
The Canvas API......Page 444
Frontend Dev Tools......Page 463
Webpack......Page 464
Parcel......Page 477
Babel......Page 481
Yarn......Page 487
Jest......Page 495
ESLint......Page 513
Prettier......Page 518
Browser DevTools......Page 521
Emmet......Page 535
How to use Visual Studio Code......Page 545
React and Redux......Page 575
React......Page 576
JSX......Page 600
React Router......Page 610
Styled Components......Page 616
Redux......Page 620
Redux Saga......Page 627
Setup an Electron app with React......Page 634
Next.js......Page 643
Introduction to Vue......Page 653
Vue First App......Page 657
The Vue CLI......Page 666
DevTools......Page 680
Configuring VS Code for Vue Development......Page 693
Components......Page 703
Single File Components......Page 707
Templates......Page 711
Styling components using CSS......Page 714
Directives......Page 720
Events......Page 726
Methods......Page 729
Watchers......Page 732
Computed Properties......Page 734
Methods vs Watchers vs Computed Properties......Page 737
Props......Page 738
Slots......Page 742
Filters......Page 744
Communication among components......Page 747
Vuex......Page 751
Vue Router......Page 760
Node.js......Page 770
Introduction to Node......Page 771
A brief history of Node......Page 776
How to install Node......Page 779
How much JavaScript do you need to know to use Node?......Page 780
Differences between Node and the Browser......Page 782
Run Node.js scripts from the command line......Page 784
How to exit from a Node.js program......Page 785
How to read environment variables......Page 787
Node hosting options......Page 788
Use the Node REPL......Page 792
Pass arguments from the command line......Page 796
Output to the command line......Page 798
Accept input from the command line......Page 803
Expose functionality from a Node file using exports......Page 805
npm......Page 807
Where does npm install the packages......Page 811
How to use or execute a package installed using npm......Page 812
The package.json file......Page 815
The package-lock.json file......Page 826
Find the installed version of an npm package......Page 830
How to install an older version of an npm package......Page 832
How to update all the Node dependencies to their latest version......Page 834
Semantic versioning rules......Page 837
Uninstalling npm packages......Page 839
Global or local packages......Page 840
npm dependencies and devDependencies......Page 842
npx......Page 843
The event loop......Page 846
nextTick......Page 856
setImmediate......Page 857
The Node Event Emitter......Page 858
Build an HTTP server......Page 860
Making HTTP requests......Page 862
Axios......Page 864
Websockets......Page 869
HTTPS, secure connections......Page 873
File descriptors......Page 875
File stats......Page 877
File paths......Page 879
Reading files......Page 881
Writing files......Page 882
Working with folders......Page 884
The fs module......Page 887
The path module......Page 890
The os module......Page 893
The events module......Page 898
The http module......Page 902
Streams......Page 908
Working with MySQL......Page 914
Difference between development and production......Page 918
Express.js......Page 920
Express overview......Page 921
Request parameters......Page 924
Sending a response......Page 927
Sending a JSON response......Page 929
Manage Cookies......Page 930
Work with HTTP headers......Page 931
Redirects......Page 933
Routing......Page 934
CORS......Page 935
Templating......Page 941
The Pug Guide......Page 944
Middleware......Page 952
Serving static files......Page 954
Send files......Page 955
Sessions......Page 956
Validating input......Page 958
Sanitizing input......Page 962
Handling forms......Page 965
File uploads in forms......Page 966
An Express HTTPS server with a self-signed certificate......Page 969
Setup Let's Encrypt for Express......Page 973
JavaScript Libraries......Page 979
Axios......Page 980
The Beginner's Guide to Meteor......Page 985
Moment.js......Page 1006
GraphQL......Page 1011
GraphQL......Page 1012
Apollo......Page 1022
Git and GitHub......Page 1039
Git......Page 1040
GitHub......Page 1052
A Git cheat sheet......Page 1061
Deployment, APIs and Services......Page 1064
Netlify......Page 1065
Firebase Hosting......Page 1071
How to authenticate to any Google API......Page 1078
Interact with the Google Analytics API using Node.js......Page 1092
Glitch, a great Platform for Developers......Page 1104
Airtable API for Developers......Page 1130
Electron......Page 1138
Networking......Page 1145
The HTTP protocol......Page 1146
Caching in HTTP......Page 1153
The HTTP Status Codes List......Page 1156
The curl guide to HTTP requests......Page 1161
What is an RFC?......Page 1166
The HTTP Response Headers List......Page 1168
The HTTP Request Headers List......Page 1176
How HTTP requests work......Page 1183
HOW-TOs......Page 1189
How to append an item to an array in JavaScript......Page 1190
How to check if a JavaScript object property is undefined......Page 1192
How to deep clone a JavaScript object......Page 1193
How to convert a string to a number in JavaScript......Page 1198
How to format a number as a currency value in JavaScript......Page 1202
How to get the current timestamp in JavaScript......Page 1204
How to redirect to another web page using JavaScript......Page 1206
How to remove an item from an Array in JavaScript......Page 1209
How to remove a property from a JavaScript object......Page 1211
How to check if a string contains a substring in JavaScript......Page 1214
How to uppercase the first letter of a string in JavaScript......Page 1217
How to replace all occurrences of a string in JavaScript......Page 1219
How to trim the leading zero in a number in JavaScript......Page 1221
How to inspect a JavaScript object......Page 1222
How to generate random and unique strings in JavaScript......Page 1227
How to make your JavaScript functions sleep......Page 1229
How to check if a file exists in Node.js......Page 1231
How to validate an email address in JavaScript......Page 1232
How to get the unique properties of a set of object in a JavaScript array......Page 1236
How to check if a string starts with another in JavaScript......Page 1237
How to create a multiline string in JavaScript......Page 1238
How to get the current URL in JavaScript......Page 1239
How to initialize a new array with values in JavaScript......Page 1241
How to create an empty file in Node.js......Page 1242
How to remove a file with Node.js......Page 1243
How to wait for the DOM ready event in plain JavaScript......Page 1245
How to add a class to a DOM element......Page 1246
How to loop over DOM elements from querySelectorAll......Page 1247
How to generate a random number between two numbers in JavaScript......Page 1248
How to remove a class from a DOM element......Page 1249
How to check if a DOM element has a class......Page 1250
How to change a DOM node value......Page 1251
How to add a click event to a list of DOM elements returned from querySelectorAll......Page 1252
How to get the index of an iteration in a for-of loop in JavaScript......Page 1253