Javascript – How to Create Functions to replace text, factorial, check if it’s even

These are some code snippets on how to create functions to check if a number is even. Do a factorial with a for loop. Do a text replacement with regular expressions.

// isEven f(x)
function isEven(arg) {
	return arg%2 === 0
}
// factorial f(x)
function factorial(num) {
	var result = 1;
	for(var i = 2; i <= num; i++) {
		result = result * i;
	}
	return result;
}
// kebabToSnake() Replace a string "-" with '_'s
function kebabToSnake(str) {
	var newStr = str.replace(/-/g , "_");
	return newStr;
}

Javascript – Simple For Loop Examples

These are some examples of simple for loop challenges and exercises I did for fun.

// Print 'hello' the string vertically
var str = 'hello';
for(var count = 0; count < str.length; count++) {
	console.log(str[i])
}
// print all numbers between -10 and 19

for(var i = -10; i < 20; i++) {
	console.log(i)
}

// print even numbers between 10 and 40

for(var i = 10; i < 40; i++) {
	if(i % 2 === 0){
	console.log(i)
	}
}
// print all odd numbers between 300 and 333
for(var i = 300; i < 333; i++) {
	if(i % 3 === 0){
	console.log(i)
	}
}
// print all numbers divisible by 5 and 3 between 5 and 50
for(var i = 5; i < 50; i++)	{
	if(i % 3 === 0 && i % 5 === 0) {
	console.log(i)
	}
}

Javascript can be dynamically typed – Array Example

This is code example of javascript being dynamically typed with arrays. Arrays can store, anything: strings, objects, functions, strings, and integers. Below is example how to call an object lateral and function. Remember arrays start count at 0.

var arr = [1,
           2,
           3,
           {
           name: 'jason',
             addy: '111 fake st'
           },
           function(name){
           	var greeting = 'hello ';
             console.log(greeting + name);
           },
           'hello'
          ];
arr[4](arr[3].name);

// hello jason

How to Setup Babel es2015 Javascript on Windows 8.1?

First create a folder:
Then CD into that folder through CMD
Then do the follow in command-line

npm init
npm install -g babel-cli
npm install babel-preset-es2015–save-dev

Then create app.js.es6 file

Then use this example code:

class Person {
	constructor(name) {
		this.name = name;
	}
	greet(){
		return "Hello I am ${this.name}";
	}
}

let person = new Person("Tyler");
console.log(person.greet());

babel app.js.es6 –presets2015 | clip

Clip copies the string from commandline. Then you should get the follow code output:

"use strict";

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var Person = (function () {
	function Person(name) {
		_classCallCheck(this, Person);

		this.name = name;
	}

	_createClass(Person, [{
		key: "greet",
		value: function greet() {
			return "Hello I am ${this.name}";
		}
	}]);

	return Person;
})();

var person = new Person("Tyler");
console.log(person.greet());

Now we want to create an index.html file

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>
	<h2>ES2015</h2>

	<script src="app.js"></script>
</body>
</html>

babel app.js.es6 –presets es2015 > 5

Now we are going to create a file called .bablrc this file will shorten the command to compile the babel file

{
	presets: ["es2015"]
}

Next we type in this code to make compiling es2015 javascript faster.

babel app.js.es6 > app.js

babel_CMD_setup

https://github.com/JasonDeving/babel2015windowssetup

javascript – namespacing, public and private data

This is quick code sample of public and private data using javascript. You would create anonymous call back function. Private data would be store in var.
Public data would be returned.

// we create anonymous callback function to create private and public functions
var THINGS = function() {
// private
var gifts = 3;
// public
return {
    gems: 1000,
    gold: 2000,
    swords: 300,
    SECRET: {
      open: function() {
        gifts--;
        alert('OPENED!');
      }
    }
};}();

I hope you found this code snippet useful in your coding. These are higher order examples of code has to deal with object orientated programming. You can apply these concepts elsewhere.

Public functions can be access and changed anywhere. Where as private can’t be changed the numbers stay static. For example gifts will stay 3, but the public function can subtract it in increments of negative 1.

The reason behind public and private is track bugs. If you have too many public/global variables you get lost quick and other variables can overwrite those current variables, which is something you don’t want. Plus there is name spacing here the namespace is THINGS.

Javascript – Sales Tax Program

function tax (price, percent) {
		return parseFloat((price*percent/100).toFixed(2));
	}
	var randomItem = 9.85;
	var salesTax = 7.5;
	var total = randomItem + tax(randomItem, salesTax);
	console.log(total);

 

This is a program on how to calculate sales tax with javascript, because handling floats is a bit weird with javascript.

How to Benchmark Your Javascript?

This is a quick tutorial on how to benchmark your javascript with console.time(“arg”) and console.timeEnd(“arg”)
You would use developer tools to see how fast your script runs.
javascript_benchmark

Example Code:

Array.prototype.proto1 = function(){};
Array.prototype.proto2 = function(){};
Array.prototype.proto3 = function(){};
Array.prototype.proto4 = function(){};
Array.prototype.proto5 = function(){};

var objectLateral = {
  arrayBank: ['Some random string', 'Other String', 'More Stringy Spaghetti']
};

function runThisCode(){
  var things = objectLateral.arrayBank,
      list = "";
	console.time("time");  

  for(var i = 0, ff = things.length; i < ff; i++){
    list += (things[i] + " ");
  }

  console.timeEnd("time");
  return list.trim();
}

runThisCode();

Returning Functions and Immediate Invocation

// ride and wait time
var parkRides = [["birch bumpers", 40], ["dank bumpers", 36], ["trap bumpers", 41], ["wtf bumpers", 43],];
// fast pass for faster line
var fastPassQueue = ["birch bumpers", "dank bumpers", "trap bumpers", "wtf bumpers"];
// allRides arg - this parameter will be the array of the rides and their wait time
// passrides arg - this will be the array of the nxt available fast pass rides
// pick arg - this will be the actual ride for which our customer would like a ticket!
function buildTicket(allRides, passRides, pick) {
	if(passRides[0] == pick){
		var pass = passRides.shift();
		return function() {alert("Quick! You've got a fast pass to " + pass +"!"); 
	};
	} else {
		for(var i =0; i<allRides.length;i++){
			if(allRides[i][0]==pick){
				return function () {alert("A ticket is print for " + pick +"!\n" + "Your wait time is about " + allRides[i][1] + " minutes.");
				};
			}
		}
	}
}
var wantsRide = "birch bumpers";
// self invoking function when you add () at the end off the function
buildTicket(parkRides, fastPassQueue, wantsRide)();

 

This is hypothetical fast pass system created with functions, arrays, conditional, and for loop statement. All written javascript.

Reserved Characters in URLs – PHP

These are list of following of reserved characters for links:

! # $ % & ( ) * + , / : ; = ? @ [ ]

These characters need to be encoded so it doesn’t interfere with the function of the URL.

These characters will turn into %21 hexadecimal characters.

A fix for this is

<?php
	urlencode($string);

?>

 

URLencode

  • Letters, numbers, underscores, and dash are unchanged
  • Reserved characters become % + 2 digit hexadecimal
  • Spaces become “+”
  • Use this for query string after that ?

rawurlencode

  • rawurlencode should only be used for file path
  • path is the part before “?”
  • spaces must be %20
  • it’s newer