Code Monkey home page Code Monkey logo

ch-sriram / javascript Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 40.25 MB

Proof of Concept: Beginner to Advanced Implementations of the Concepts in JavaScript.

Home Page: https://ch-sriram.github.io/JavaScript/

License: MIT License

HTML 41.95% JavaScript 55.37% CSS 2.68%
javascript hoisting scope-chain document-object-model prototype-chain event-delegation iife arrow-functions rest-parameters map fetch-api promise async-await nodejs npm webpack babel

javascript's Introduction

JavaScript - Proof of Concept

Implementation & Explanation of Beginner to Advanced JavaScript Concepts [ES5 & ES6]. HitCount

Resources:

  1. JS Course & GitHub Repo for JS by Jonas Schmedtmann
  2. You Don't Know JS by Kyle Simpson (getify)
  3. JS Docs by MDN

More resources will be added depending on the usefulness of the resource.

Child Repositories (Project Deployments)

These are the projects that are implemented using JavaScript as a proof of concept.

Development Workflow

Syntax - <topic name>: <html file> | <JavaScript file>

  1. JavaScript Basics

    1. Hello World!:
      1. Inline Script: hello_i.html
      2. External Script: hello_e.html | hello.js
    2. Variables & Data Types: var_dt.html | var_dt.js
    3. Variable Mutation & Type Coercion: vm_tc.html | vm_tc.js
    4. Basic Operators: operators.html | operators.js
    5. Coding Challenge I: challenge_1.html | challenge_1.js
    6. Control Structures & Boolean Logic: cs_bl.html | cs_bl.js
    7. Coding Challenge II: challenge_2.html | challenge_2.js
    8. functions - Declarations & Expressions: functions.html | functions.js
    9. Arrays: arrays.html | arrays.js
    10. Coding Challenge III: challenge_3.html | challenge_3.js
    11. Objects - Properties & Methods: objects.html | objects.js
    12. Coding Challenge IV: challenge_4.html | challenge_4.js
    13. Looping & Iteration: loops.html | loops.js
    14. Coding Challenge V: challenge_5.html | challenge_5.js
  2. JS Behind the Scenes

    1. Execution Context & Execution Stack: exec.html | exec.js
    2. Exectution Context in Detail
      1. Hoisting: hoisting.html | hoisting.js
      2. Scoping & Scope Chain: scope.html | scope.js | scope.pdf - view or download
      3. The this Keyword: this.html | this.js
  3. JS DOM: The Pig Game

    1. Common Markup for ii-vii: index.html & style.css
    2. DOM Access & Manipulation: app.js
    3. Events & Event Handling: app.js
    4. Adding, Removing & Toggling HTML Classes: app.js
    5. DRY Principle & More DOM Manipulation: app.js
    6. Creating Initialization Function for the Game: app.js
    7. Adding Game State: app.js final version (Easy) | Play the game @CodeSandBox
    8. Pig Game: app.js final version (Hard) | Play the game @Repl.it | Updated Markup - index.html & style.css

  4. Advanced JS: Objects & Functions

    1. Object Creation, Inheritence & prototype Chain: obj.html | obj.js | prototypeChain.pdf - view or download
    2. Primitives vs. Objects: prim_vs_obj.html | prim_vs_obj.js
    3. First Class Functions: first_class_functions.html | first_class_functions.js
    4. Immediately Invoked Function Expressions (IIFE): iife.html | iife.js
    5. Closures: closure.html | closure.js | closure.pdf - view or download
    6. bind(), call() & apply(): bind_call_apply.html | bind_call_apply.js
    7. Coding Challenge VII: challenge_7.html | challenge_7.js
    8. Event Bubbling, Target Element & Event Delegation: eventDelegation.html | eventDelegation.pdf - view or download. Reading of eventDelegation.pdf required before understanding the code from Budgety App (k) and thereafter.
    9. Budgety App

      1. Common Markup: index.html & style.css
      2. Module Pattern, Encapsulation & Separation of Concerns: app.js
      3. keypress Events & event Object: app.js
      4. Reading HTML Input Data w. Separation of Concerns: app.js
      5. Adding the Initialization Function: app.js
      6. Function Constructors and Data Structures for Incomes & Expenses: app.js
      7. Avoiding Data Structure Conflicts & Passing Data from One Module to Another: app.js
      8. Usage of innerAdjacentHTML() method & replace() method: app.js
      9. Usage of querySelectorAll() method, Conversion of NodeList to Array & the usage of forEach() method: app.js
      10. Converting HTML Field Inputs to Numbers & Preventing False Item Inputs: app.js
      11. Creating functions for a singular purpose: app.js
      12. Event Delegation in Practice - The parentNode property: app.js
      13. Usage of map() and splice() methods on an array: app.js
      14. How to remove an element from the DOM using removeChild(): app.js
      15. Usage of prototype to define a method in a predefined function constructor: app.js
      16. How to implement a forEach() for NodeList instead of array: app.js
      17. How to use different String methods to manipulate strings: app.js
      18. How to get the current date using the Date object constructor: app.js
      19. How and when to use change events: app.js
      20. Budgety App: app.js (final version) | Use the app @netlify

  5. Next Generation JavaScript - Intro to ES6/ES2015

    1. List of New Concepts in ES6: es6.html
    2. Variables declared using let & const: let_const.html | let_const.js
    3. Blocks & IIFEs: block_iife.html | block_iife.js
    4. Strings & String Functions: strings.html | strings.js
    5. Arrow Functions Intro: arrow_func.html | arrow_func.js
    6. Arrow Functions - Lexical this Keyword: arrow_func_this.html | arrow_func_this.css | arrow_func_this.js
    7. Destructuring: destructuring.html | destructuring.js
    8. Arrays in ES6 (ES2015): arrays.html | arrays.css | arrays.js
    9. The Spread ... Operator: spread.html | spread.css | spread.js
    10. Function Parameters
      1. Rest Parameters: rest.html | rest.js
      2. Default Parameters: default.html | default.js
    11. The Map Data Structure: map.html | map.js
    12. classes (Syntactic Sugar): class.html | class.js
    13. Inheritance - Classes & Subclasses (ES5 - Object.create() / ES6 - extends): inheritance.html | inheritance.js
    14. Challenge VIII: challenge8.html | challenge8.js
  6. Asynchronous JavaScript

    1. An Example of Asynchronous JavaScript: intro.html
    2. Understanding Asynchronous JS, The Event Loop: event_loop.html | event_loop.pdf - view or download
    3. Callback Hell - The Old Way: callback_hell.html
    4. From Callback Hell to Promises: promise.html | promise.pdf - view or download
    5. From Promises to async/await in ES8/ES2017: async_await.html
    6. AJAX & API - What do they mean? : ajax_api.html | ajax_api.pdf - view or download
    7. Making AJAX Calls Using fetch() and
      1. Promises: fetch_promise.html | fetch_promise.js
      2. async/await: fetch_async_await.html | fetch_async_await.js
  7. Modern JavaScript Using ES6, NPM, Babel & Webpack

    1. Introduction: intro.html
    2. An Overview of Modern JavaScript: overview.html | overview.pdf - view or download
    3. A Modern Setup Installing Node.js and NPM: nodejs.html | package.json | nodejs.pdf - view or download
    4. A Modern Setup Configuring Webpack: webpack.html | index.js | test.js | webpack.config.js | package.json | bundle.js | webpack.pdf - view or download
    5. A Modern Setup Configuring Webpack Dev Server: webpack_dev_server.html | index.js | test.js | webpack.config.js | package.json | index.html | bundle.js | webpack_dev_server.pdf - view or download
    6. A Modern Setup Configuring Babel: babel.html | index.js | test.js | package.json | bundle.js | babel.pdf - view or download | tooling_changes_babel.html
    7. Forkify App Development (Path: ./Modern-JS-ES6-NPM-Babel-Webpack/forkify_project/)

      1. Common Markup & Styling: ./dist/index.html | ./dist/css/style.css | Forked from: Jonas Schmedtmann's Starter Code @GitHub
      2. MVC Architecture: forkify_mvc.html | forkify_mvc.pdf - view or download
      3. How ES6 Modules Work: ./src/js/index.js | ./src/js/models/Search.js | ./src/js/views/searchView.js
      4. Making Our First API Call: ./src/js/index.js
      5. Building the Search Model Using ES6 classes: ./src/js/index.js | ./src/js/models/Search.js
      6. Building the Search Controller (keeping in mind, the application state): ./src/js/index.js | ./src/js/models/Search.js
      7. Building the Search View (base.js contains the DOM elements)
        1. Rendering the Results onto the front-end: ./src/js/index.js | ./src/js/models/Search.js | ./src/js/views/searchView.js | ./src/js/views/base.js
        2. Using the reduce() & join() methods to limit the Recipe Title: ./src/js/index.js | ./src/js/models/Search.js | ./src/js/views/searchView.js | ./src/js/views/base.js
        3. Rendering the Loading Spinner: ./src/js/index.js | ./src/js/models/Search.js | ./src/js/views/searchView.js | ./src/js/views/base.js
      8. Setting Up Pagination Using Element.closest(), Event Delegation and data-* attribute in HTML5: ./src/js/index.js | ./src/js/models/Search.js | ./src/js/views/searchView.js | ./src/js/views/base.js
      9. Building the Recipe (Data) Model [Part 1]: ./src/js/index.js | ./src/js/models/Recipe.js
      10. Building the Recipe Controller Using the hashchange Event: ./src/js/index.js | ./src/js/models/Recipe.js
      11. Building the Recipe (Data) Model [Part 2] Using the eval() and map() methods & Map object: ./src/js/index.js | ./src/js/models/Recipe.js
      12. Building the Recipe View
        1. Looping inside a Template String to generate HTML: ./src/js/index.js | ./src/js/models/Recipe.js | ./src/js/views/recipeView.js | ./src/js/views/base.js
        2. Using 3rd Party API (fractional) to convert the Quantities into a Fraction & Highlighting the Selected Recipes using classList property: ./src/js/index.js | ./src/js/models/Recipe.js | ./src/js/views/recipeView.js | ./src/js/views/searchView.js | ./src/js/views/base.js | package.json
        3. Updating Recipe Servings Using Event Delegation (matches() method): ./src/js/index.js | ./src/js/models/Recipe.js | ./src/js/views/recipeView.js | ./src/js/views/base.js
      13. Building the Shopping List (Data) Model Using uniqid: ./src/js/index.js | ./src/js/models/List.js | package.json
      14. Building the Shopping List View (Front-End): ./src/js/index.js | ./src/js/views/listView.js | ./src/js/models/List.js | ./src/js/views/base.js
      15. Building the Shopping List Controller: ./src/js/index.js | ./src/js/views/listView.js | ./src/js/models/List.js | ./src/js/views/recipeView.js | ./src/js/views/base.js
      16. Building the Likes (Data) Model: ./src/js/index.js | ./src/js/models/Likes.js
      17. Building the Likes Controller: ./src/js/index.js | ./src/js/models/Likes.js | ./src/js/views/base.js
      18. Building the Likes View (Front-End): ./src/js/index.js | ./src/js/views/likesView.js | ./src/js/views/recipeView.js | ./src/js/views/searchView.js | ./src/js/models/Likes.js | ./src/js/views/base.js
      19. Implementing Persistent Data With localStorage() API and Implementing Delete All Shopping Items Functionality List's Model, View & Controller: ./src/js/index.js | ./src/js/views/likesView.js | ./src/js/views/searchView.js | ./src/js/views/listView.js | ./src/js/models/Likes.js | ./src/js/models/List.js | ./src/js/views/base.js
      20. Forkify App Summary
        1. Controller: ./src/js/index.js
        2. Models: ./src/js/models/Search.js | ./src/js/models/Recipe.js | ./src/js/models/List.js | ./src/js/models/Likes.js
        3. Views: ./src/js/views/searchView.js | ./src/js/views/recipeView.js | ./src/js/views/listView.js | ./src/js/views/likesView.js
        4. Common Code Base: ./src/js/views/base.js
        5. Config: package.json | webpack.config.js | .babelrc
        6. Final Bundled JS: ./dist/js/bundle.js

javascript's People

Contributors

ch-sriram avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.