Skip to content

Instantly share code, notes, and snippets.

@OlehRovenskyi
Last active June 26, 2017 19:58
Show Gist options
  • Save OlehRovenskyi/66e764398c4afcff43fda42cabfc7134 to your computer and use it in GitHub Desktop.
Save OlehRovenskyi/66e764398c4afcff43fda42cabfc7134 to your computer and use it in GitHub Desktop.
js function
// function
function hello() {
return 'Hello';
}
hello() // hello
hello() // hello
// function with params
function func (a, b) {
return a + b;
}
console.log( func(2,3) );
// undefined when the pass is not all options
function func1 (a, b) {
return a + b;
}
console.log( func1(2) ); // NaN
// using || (ИЛИ)
function func2 (a, b) {
b = b || 2;
return a + b;
}
console.log( func2(2) );
// function declaration
// funcDec, funcExp - variable
function funcDec (a, b) {
return a + b;
}
console.log( funcDec(2,3) );
// function expression
var funcExp = function(a, b) {
return a + b;
};
console.log( funcExp(2,3) );
// anonymous function
function() {
console.log('hi');
}
// conditional function declaration
var test;
if () {
test = function() {
console.log(true);
};
} else {
test = function() {
console.log(true);
};
}
test();
// hosting
function func1() {
function funcExample() {
return 'one dec';
}
return funcExample();
function funcExample() {
return 'two dec';
}
};
console.log(func1());
// The difference between 'dec' and 'exp' function
function func2() {
var funcExample = function() {
return 'one exp';
}
return funcExample();
var funcExample = function() {
return 'two exp';
}
};
console.log(func2())
// hosting
function func1() {
function funcExample() {
return 'one';
}
var variable = funcExample();
function funcExample() {
return 'two';
}
return variable;
};
console.log(func1());
// функции обратного вызова (callback).
// Функция которая вызовется после определенного условия.
var func = function(callback) {
var name = "Nick";
return callback(name);
};
console.log( func( function(n){
return "Hello " + n;
}) );
//возвращение функции
var func1 = function() {
return function() {
console.log( 'Привет!!!' );
};
};
// func1();
// func1()();
// Immediately-Invoked Function Expression (IIFE)
;(function() {
console.log( 'Привет от анонимной самовызывающейся функции!!!' );
})();
// позволяет скрывать код от глобальной области видимости
var prop = 1;
;(function() {
var prop2 = 2;
console.log( 'Привет от анонимной самовызывающейся функции!!!' );
console.log( 'prop ', prop );
console.log( 'prop2 in local scope ', prop2 );
})();
console.log( 'prop2 in global scope ', prop2 ); // Uncaught ReferenceError: prop2 is not defined
// либо с параметрами
// ананимная самовызывающаяся функция это основа модульного подхода в js
// var prop1 = 1;
// ;(function($, pro) { // обозначаем как будем внутри использовать
// console.log( pro );
// var prop2 = 2;
// console.log( 'Привет от анонимной самовызывающейся функции!!!' );
// console.log( 'prop2 in local scope ', prop2 );
// })(jQuery, prop); // передаем обьект или переменную
var prop1 = 1;
var module = (function(pro) {
console.log( pro );
})(prop1);
;(function(pro) { // обозначаем как будем внутри использовать
console.log( pro );
})(prop1); // передаем обьект или переменную
// объект arguments
var funcArg = function() {
console.log(arguments);
}
funcArg();
// --------
var funcArg = function(a, b) {
console.log(arguments);
}
funcArg(1, 2);
// --------
var funcArgs = function(){
var i;
var sum = 0;
for (i = 0; i < arguments.length; i++ ) {
sum += arguments[i];
};
return sum;
};
console.log( funcArgs(1,2,3) );
// Function constructor. Creating new object
function Animal(name) {
this.name = name
this.canWalk = true
}
var animal = new Animal('rabbit')
// Function as a method
function log123() {
console.log(123);
}
var obj = {
name: 'Arni',
method: function() {
console.log('method');
}
}
obj.method();
obj.method2 = log123;
obj.method2();
// Scope
var funcExp2 = function (name) {
var test = 10;
return name;
}
funcExp2('Arni');
console.log(test); // VM112:9 Uncaught ReferenceError: test is not defined
// scope examples
//глобальные переменные
var oneOne = 1;
// всегда пиши var !!!
globalll = 2444;
var outer = function () {
var arr1 = [1,2,3];
for ( i = 0; i < arr1.length; i++) {
console.log( 'first cycle: ', i );
inner();
}
};
var inner = function() {
var arr2 = [4,6,8];
for ( i = 0; i < arr2.length; i++) {
console.log( 'second cycle: ', i );
}
};
outer();
//цепочка областей видимости
var k = 4;
var outerScope = function() {
console.log( k );
var k = 8;
console.log( k );
var innerScope = function(){
var k = 12;
console.log( k );
};
}
innerScope();
console.log( k );
};
outerScope();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment