Javascript Code Standards

From PM Wiki
Jump to navigation Jump to search

Naming Conventions

All variables, functions, and classes should all have meaningful names:

// do not do this
var f = "Aaron";

// do this
var first_name = "Aaron";

Variables

Variable names should all be lower case:

var email;

If the variable name is made up of multiple words, use snake case:

var email_address;

Strings

Strings should be enclosed in double quotes ("):

var user_name = "Aaron";

String Concatenation vs. Variable Injection

String concatenation is discouraged. Instead, enclose your strings that require variable injections in backticks (`) and place the variable using ${} notation:

// do not do this:
var message = user_name + " has logged out of the system.";

// do this:
var message = `${user_name} has logged out of the system.`;

Functions

Function names should all be lowercase:

function update();

If the function name is made up of multiple words, use snake case:

function update_by_id();

Classes

Class names should all be capitalized:

class Vertical {

    constructor() {

        // code goes here
    }
}

If the class name is made up of multiple words, use Pascal case:

class VerticalGroup {

    constructor() {

        // code goes here
    }
}

Function Definitions

Function definitions should all be full definitions with no shorthand/arrow notation:

function function_name(parameter_1, parameter_2) {

    // code goes here
}

Callbacks

Callbacks should utilize shorthand/arrow notation:

button.addEventListener("click", (event) => {

    event.preventDefault();

    // code goes here
});

If the callback is a reusable block of code, create a function for the reusable block if it doesn't already exist and use the function name instead of shorthand/arrow notation:

function validate_form_fields(event, form_fields) {

    event.preventDefault();

    // code goes here
}

form.addEventListener("submit", validate_form_fields(event, form_fields));

event vs. e

Do not simply type "e" for an event. Completely type out "event":

// do not do this:
button.addEventListener("click", (e) => {

    e.preventDefault();
});

// do this:
button.addEventListener("click", (event) => {

    event.preventDefault();
});