JavaScript Best Practicies : Syntax

Ternary Conditionals

isArthur && isKing ? 
    (weapon = "Excalibur", helmet = "Goosewhite") : 
        isArcher ? (weapon = "Longbow", helmet = "Mail Helm") : 
        (weapon = "Longsword", helmet = "Iron Helm");;

The “OR” Operator

  • When used in assignment, the OR operator will try to select the first value it encounters that is not “false”.
  • The OR operator takes the leftmost “truth” value, and if none exists, the last “false” value.
var result1 = undefined || 42;
console.log(result1); // 42

var result2 = 0 || ["Item1", "Item2"];
console.log(result2); // ["Item1", "Item2"]

var result3 = "" || {type: "Type", item: "Item"};
console.log(result3); // {type: "Type", item: "Item"}

When all elements are “true”, the FIRST “true” value assigned.

var result1 = "Value" || "Item";
console.log(result1); // "Value"

When all elements are “false”, the LAST “false” value assigned.

var result1 = undefined || "";
console.log(result1); // ""

The “AND” Operator

  • The && operator takes the rightmost “truth” value or the first “false” value.
var result1 = undefined && 42;
console.log(result1); // undefined

var result2 = 0 && ["Item1", "Item2"];
console.log(result2); // 0

var result3 = "" && {type: "Type", item: "Item"};
console.log(result3); // ""

When all elements are “true”, && will return the LAST “true” value found.

var result1 = "Value" && "Item";
console.log(result1); // "Item" 

The Switch Block

function Knight (name, regiment){
 
this.name = name;
 
this.regiment = regiment;
switch (regiment) {

  case 1:

    this.weapon = "Broadsword";
    break;

  case 2:

    this.weapon = "Claymore";
    break;

  case 3:

    this.weapon = "Longsword";
    break;
  case 5:

    this.weapon = "War Hammer";
    break;
  case 6:

    this.weapon = "Battle Axe";
    break;
  case 4:
 
  case 7:
 
  case 8:
    this.weapon = "Morning Star";
    break;
  case "King":"
    this.weapon = "Excalibur";
    break;
  default:
    alert(name + " has an incorrect " + "
        "regiment, Master Armourer!" + "
        "\n\nNo weapon assigned!");

A carefully organized switch block can add LEAST common properties first and MOST common, last.

function ceremonialDagger(knight, rank){
	this.length = 8;
	this.owner = knight;
	switch(rank){
	  case "King": this.diamonds = 1;
	  case "High Constable": this.amethyst = 2;
	  case "Field Marshal": this.sapphires = 4;
	  case "Captain": this.emeralds = 1;
	  case "Knight": this.rubies = 6;
  	}
}

var marshalsDagger = new ceremonialDagger("Timothy", "Field Marshal");
console.log(marshalsDagger); // ceremonialDagger {length: 8, owner: "Timothy", sapphires: 4, emeralds: 1, rubies: 6}

Leave a Reply

Your email address will not be published. Required fields are marked *