Table of Contents

JavaScript

About Javascript

Criticism

Course Practical JavaScript

NativeScript

Programming Paradigms

Imperative programming defines computation as statements that change a program state
Procedural programming structured programming – specifies the steps a program must take to reach a desired state
Declarative programming defines program logic, but not detailed control flow
Functional programming treats programs as evaluating mathematical functions and avoids state and mutable data
Object-oriented programming (OOP) organizes programs as objects: data structures consisting of datafields and methods together with their interactions
Event-driven programming program control flow is determined by events, such as sensor inputs or user actions (mouse clicks, key presses) or messages from other programs or threads
Automata-based programming a program, or part, is treated as a model of a finite state machine or any other formal automaton

Frameworks and Stacks

MEAN

AngularJS

Node.js

About Node.js

As an asynchronous event driven JavaScript runtime, Node is designed to build scalable network applications. In the following “hello world” example, many connections can be handled concurrently. Upon each connection the callback is fired, but if there is no work to be done Node is sleeping.

This is in contrast to today's more common concurrency model where OS threads are employed. Thread-based networking is relatively inefficient and very difficult to use. Furthermore, users of Node are free from worries of dead-locking the process, since there are no locks. Almost no function in Node directly performs I/O, so the process never blocks. Because nothing blocks, scalable systems are very reasonable to develop in Node.

# HelloWorld.js

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

jQuery