DEV Community

Kristijan Pajtasev
Kristijan Pajtasev

Posted on • Originally published at Medium on

2 4

Web development — lecture 3 — Introduction to JavaScript

Web development — lecture 3 — Introduction to JavaScript

JavaScript is higher-order, dynamic and just-in-time compiled language and one of core technologies used in web. While that does sound maybe too much now, first important thing to understand is that it gives logic to our application.

Before, JavaScript was considered as a bad, slow, toy language used just to make some shiny effect in the browser. However, in 2008, when V8 JavaScript engine was released, things changed for JavaScript. It got huge speed boost, become more reliable and more companies started working on language improvement and standardization. It enabled creation of NodeJS.

Today, JavaScript is used in much more than web pages:

Machine learning and AI

  • Tensorflow

Games

  • PhaserJS
  • Unity

Mobile applications

  • React Native

Raspberry Pi

  • NodeJS

Satellites

  • Reaktor

Language syntax

Values

Value can be:

· Primitive: string, number, boolean, null, undefined

· Complex: object, class, array

Assigning values:

// const or let
const value = 5;
const  cant be reassigned
let  can be reassigned

Code blocks

Code placed between curly brackets {}

Operators

Mathematical: +, -, /, *

Incrementor/decrementor: ++, —

Logical operators: ||, &&

If statement

If we want to execute some code only in special case

if(true) {

    // do something

} else if(false) {

    // do other thing

}

Loops

While loop

while(true) {
    // do something
}

For loop

for (let i = 0; i < 10; i++) {
    // do something 10 times
}

Function

Reusing piece of logic

function increment(num) {
    return num + 1;
}
increment(5); // 6

Lambda functions

const increment = (num) => { return num + 1 };
increment(5); //6

Arrays

const a = [1, 2, 3, 4];

console.log(a[0]); // 1

Objects

Key-value collection of values and functions

const obj = {
    val: 5,
    action: function(){ console.log(this.val) }
};
obj.action(); //5

Classes

Classes are a bit more complex versions of key value collections. They are definitions of a custom type containing different method(functions) and properties(values). Instance of it is created by using keyword new. It contains method called constructor which is executed on creation of class instance.

class Person {
    constructor() {
        this.firstName = "john";
        this.lastName = "doe";
    }

    sayHello() {
      console.log(`Hello ${this.firstName} ${this.lastName}`)
    }

}

const john = new Person();

john.sayHello(); // hello world

Class extension

class NamedPerson extends Person {

    constructor(firstName, lastName) {
        super();
        this.firstName = firstName;
        this.lastName = lastName;
    }

}

const johnny = new NamedPerson('johnny', 'dunne');
johnny.sayHello();

Functional programming

Functions are first class objects. That means they can be assigned to a value and passed as parameters.

function doSomethingWithFive(f) {
    return f(5);
}

function incrementValue(num) {
    return num + 1;
}

const result = doSomethingWithFive(incrementValue);

console.log(result); // 6

About this series

This series of articles is done as part of my volunteer work at Citywise Education where I am giving lectures on web development with ReactJS. More details and other learning materials can be found at my course page grumpy-dev.com.

SurveyJS custom survey software

Simplify data collection in your JS app with a fully integrated form management platform. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more. Integrates with any backend system, giving you full control over your data and no user limits.

Learn more

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series