javascript fundamentals

javascript fundamentals

by ndw5015

JavaScript

['dog', 'cat', 'hen'].forEach(function(currentValue, index, array) {
  //console.log(array[0]);
});



function add(x, y) {
  var total = x + y;
  return total;
}

//console.log(add(2,3,4));




function add() {
  var sum = 0;
  for (var i = 0, j = arguments.length; i < j; i++) {
    sum += arguments[i];
  }
  return sum;
}

//console.log(add(2, 3, 4, 5,1,1));


function avg(...args) {
  var sum = 0;
  for (let value of args) {
    sum += value;
  }
  return sum / args.length;
}

//console.log(avg(2, 3, 4, 5)); // 3.5



var avg = function() {
  var sum = 0;
  for (var i = 0, j = arguments.length; i < j; i++) {
    sum += arguments[i];
  }
  return sum / arguments.length;
};
//console.log(avg(1,2,3,4));




function makePerson(first, last) {
  return {
    first: first,
    last: last
  };
}

function personFullName(person) {
  return person.first + ' ' + person.last;
}

function personFullNameReversed(person) {
  return person.last + ', ' + person.first;
}

s = makePerson('Simon', 'Willison');
//console.log(s);
personFullName(s); // "Simon Willison"
//console.log(personFullName(s));
personFullNameReversed(s); // "Willison, Simon"
//console.log(personFullNameReversed(s));




//alternative OOP
function makePerson(first, last) {
  return {
    first: first,
    last: last,
    fullName: function() {
      return this.first + ' ' + this.last;
    },
    fullNameReversed: function() {
      return this.last + ', ' + this.first;
    }
  };
}

s = makePerson('Simon', 'Willison');
s.fullName(); // "Simon Willison"
//console.log(s.fullName());
s.fullNameReversed(); // "Willison, Simon"
//console.log(s.fullNameReversed());




var s = 'Simon';
//s.reversed(); // TypeError on line 1: s.reversed is not a function

String.prototype.reversed = function() {
  var r = '';
  for (var i = this.length - 1; i >= 0; i--) {
    r += this[i];
  }
  return r;
};

s.reversed(); // nomiS
//console.log(s.reversed());




//CLOSURE
function makeAdder(a) {
  return function(b) {
    return...