Skip to content

Instantly share code, notes, and snippets.

View aaronfrost's full-sized avatar
:octocat:
Software Architect Contractor

Aaron Frost aaronfrost

:octocat:
Software Architect Contractor
View GitHub Profile
@aaronfrost
aaronfrost / af7.js
Created March 23, 2013 07:36
Arrow Function - 7 - Arrow Functions
function Aaron(){
this.favoriteSaying = "I love Google!";
//this.saySomething = function(){
// console.log(this.favoriteSaying);
//}
this.saySomething = () => {
console.log(this.favoriteSaying);
}
}
@aaronfrost
aaronfrost / af8.js
Created March 23, 2013 07:42
Arrow Function - 8 - Difference
var foo = () => console.log("foo");
// similar to
var bar = function(){
console.log('bar';
}
@aaronfrost
aaronfrost / af9.js
Created March 23, 2013 07:45
Arrow Function - 9 - Implicit return for one-liners
let add = (x,y)=> x+y;
console.log(add(1,2));
//When there is only line instruction
//in the Arrow Function body, you
//don't need the 'return' keyword
//to return the result of the expression
@aaronfrost
aaronfrost / af10.js
Created March 23, 2013 07:50
Arrow Function - 10 - Multiple Lines need brackets
let add = (x,y)=> x+y;
console.log(add(1,2));
//NO BRACKETS FOR ONE LINES
let add = (x,y)=> {
if(x && y){
console.log(x + y);
}
}
console.log(add(1,2));
@aaronfrost
aaronfrost / af11.js
Created March 23, 2013 07:55
Arrow Function - 11 - No parenthesis
//NONE
let add = () => 0 + 0; //0 params, parens required
//ONE PARAM
let add = x => x + x; //1 param, parens options
let add = (x) => x + x;
//MULTI PARAMS
let add = (x, y) => x + y; //multi params, parens required
<div id="foo">
<div class="bar">Baz</div>
</div>
@aaronfrost
aaronfrost / letdemo.js
Created May 6, 2013 20:01
Demo that ES6 let scoping still allows for variable hoisting
//For more reading, check here: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Scope_Cheatsheet#let
//Try running these in the Scratchpad of Mozilla Firefox
//THIS IS NOT WHAT HAPPENS, BUT WHAT YOU ARE EXPECTING
(function(){
if(navigator){
console.log(b); //if let didn't hoist, this would throw an error #THIS IS NOT WHAT ACTUALLY HAPPENS
let b = 1;
//In your Gruntfile
grunt.registerTask('replaceURL', '...', require('./urlReplacer.js'));
//Then in urlReplacer.js
var fs, r, oldfile, newfile;
fs = require('fs');
r = new RegExp("some regex to match your url", 'g');
//read the the file and replace the text
oldfile = fs.readFileSync(__dirname + '/file-with-url-that-needs-to-be-replaced.js', 'utf8');
newfile = oldfile.replace(r, 'http://thenewurl.com');
@aaronfrost
aaronfrost / debounce2.html
Last active August 29, 2015 14:02
Talk about Debounces
<div ng-controller="TestCtrl" >
<div test-ctrl-move-handler="doMouseMoveEvent()" style="width:1000px;height:1000px;"></div>
</div>
@aaronfrost
aaronfrost / unwatch.js
Last active August 29, 2015 14:02
Gist for a watch discussion
angular.module('app').directive('MyDirective', function(){
//NEW AND IMPROVED, NOW WITH LESS WATCHING!
return {
restrict: 'AE',
replace: 'true',
templateUrl: '../../blah.html',
scope:{
item: '='
},