Skip to content

Instantly share code, notes, and snippets.

View mikepenzin's full-sized avatar

Mike Penzin mikepenzin

  • Haifa, Israel
View GitHub Profile
@mikepenzin
mikepenzin / greetr.js
Created February 7, 2017 15:13
GreetrJS
/*!
* Greetr JavaScript Library v0.0.1
*
* Date: 2017-02-07T11:40Z
*/
;(function(global, $){
// 'new' an object
var Greetr = function(firstName, lastName, language) {
return new Greetr.init(firstName, lastName, language);
@mikepenzin
mikepenzin / date_time.js
Created February 28, 2017 14:58
Display Date & Time
// Today is : Friday.
// Current time is : 4 PM : 50 : 22
var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var a = new Date();
var hour = a.getHours();
console.log("Today is : " + days[a.getDay()]);
console.log("Current time is : " + getH(hour) + " " + a.getMinutes() + ":" + a.getSeconds());
@mikepenzin
mikepenzin / print.js
Created February 28, 2017 14:59
Send the contents of the current window to printer
window.print();
@mikepenzin
mikepenzin / closures.js
Created February 28, 2017 14:59
JavaScript Closures Example
// console.log(sum(2,3)); // Outputs 5
// console.log(sum(2)(3)); // Outputs 5
function sum(x){
if (arguments.length == 2){
// In functions arguments received as array.
// We need to check if their is two or one argument in array.
return arguments[0] + arguments[1];
} else {
@mikepenzin
mikepenzin / palindrome.js
Created February 28, 2017 15:01
The following function will return true if str is a palindrome; otherwise, it returns false.
// isPalindrome("level"); // Outputs true
// isPalindrome("levels"); // Outputs false
// isPalindrome("A car, a man, a maraca"); // Outputs true
function isPalindrome(str) {
// We will replace any non-word character with empty place.
// Lowercase all string
str = str.replace(/\W/g, '').toLowerCase();
@mikepenzin
mikepenzin / integer.js
Last active February 28, 2017 19:02
Function isInteger(x) that determines if x is an integer.
// isInteger(3); // Outputs true
// isInteger("5"); // Outputs false
// isInteger("car"); // Outputs false
function isInteger(x) {
// ^ stands for XOR so every integer with (4^0) will give integer itself. Every string will give 0
return (x^0) === x;
}
// Another solution
@mikepenzin
mikepenzin / factorial.js
Created February 28, 2017 15:03
Function will output the value of factorial.
// f(0); // Outputs 0
// f(5); // Outputs 120
function f(n) {
// ? stands for if statement - if n = 1 or less will return - n. if n > 1, then n * f(n-1)
// f(n); is recursion function
return ((n > 1) ? n * f(n-1) : n)
}
@mikepenzin
mikepenzin / thiskey.js
Created February 28, 2017 15:04
Call / Apply / Bind functions examples.
// Generally speaking: stabilizing the "this" keyword.
var person = {hi: "Hello"};
function showFullName(pep) {
console.log (this.hi);
}
showFullName.call(person);
// Output: Hello
@mikepenzin
mikepenzin / traverse.js
Created February 28, 2017 17:47
Depth-First-Search algorithm
// Create a function that, given a DOM Element on the page,
// will visit the element itself and all of its descendents
// (not just its immediate children). For each element visited,
// the function should pass that element to a provided callback function.
// The arguments to the function should be:
// a DOM element
// a callback function (that takes a DOM element as its argument)
@mikepenzin
mikepenzin / checknan.js
Last active April 7, 2017 18:16
Reliably test if a value is equal to NaN
function checkNaN(n){
return (n !== n) ? true : false;
}
/*
If we will use regular "isNaN":
isNaN(NaN); // true
isNaN(undefined); // true
isNaN({}); // true
isNaN('123ABC'); // true