Upload
fernando-daciuk
View
420
Download
0
Embed Size (px)
Citation preview
function func() {
'use strict';
a = 1;
return a;
}
console.log(func()); // ReferenceError: a is
not defined
use strictwith
function a() {
this.one = 1;
return this;
}
console.log(a() === window);
console.log(a().one);
console.log(window.one);
console.log(one);
use strictwithout
function a() {
this.one = 1;
return this;
}
console.log(a() === window);
console.log(a().one);
console.log(window.one);
console.log(one);
use strictwithout
function a() {
this.one = 1;
return this;
}
console.log(a() === window);
console.log(a().one);
console.log(window.one);
console.log(one);
use strictwithout
function a() {
this.one = 1;
return this;
}
console.log(a() === window);
console.log(a().one);
console.log(window.one);
console.log(one);
use strictwithout
function a() {
this.one = 1;
return this;
}
console.log(a() === window);
console.log(a().one);
console.log(window.one);
console.log(one);
use strictwithout
?
function a() {
this.one = 1;
return this;
}
console.log(a() === window); // true
console.log(a().one); // 1
console.log(window.one); // 1
console.log(one); // 1
use strictwithout
function a() {
this.one = 1;
return this;
}
console.log(a() === window); // true
console.log(a().one); // 1
console.log(window.one); // 1
console.log(one); // 1
use strictwithout
function a() {
this.one = 1;
return this;
}
console.log(a() === window); // true
console.log(a().one); // 1
console.log(window.one); // 1
console.log(one); // 1
use strictwithout
function a() {
this.one = 1;
return this;
}
console.log(a() === window); // true
console.log(a().one); // 1
console.log(window.one); // 1
console.log(one); // 1
use strictwithout
function a() {
'use strict';
this.one = 1;
return this;
}
console.log(a() === window);
console.log(a().one);
console.log(window.one);
use strictwith
function a() {
'use strict';
this.one = 1;
return this;
}
console.log(a() === window);
console.log(a().one);
console.log(window.one);
use strictwith
?
/home/code/app.js:3
this.one = 1;
^
TypeError: Cannot set property 'one' of undefined
use strictwith
function a() {
'use strict';
this.one = 1;
return this;
}
console.log(a.call({}).one); // 1
console.log(a.apply({}).one); // 1
console.log(new a().one); // 1
use strictwith
function a() {
'use strict';
this.one = 1;
return this;
}
console.log(a.call({}).one); // 1
console.log(a.apply({}).one); // 1
console.log(new a().one); // 1
use strictwith
function a() {
'use strict';
this.one = 1;
return this;
}
console.log(a.call({}).one); // 1
console.log(a.apply({}).one); // 1
console.log(new a().one); // 1
use strictwith
function a() {
'use strict';
this.one = 1;
return this;
}
console.log(a.call({}).one); // 1
console.log(a.apply({}).one); // 1
console.log(new a().one); // 1
use strictwith
function func() {
this.a = 1;
return this;
}
console.log(func.call(null) === window);
console.log(func.call('a') instanceof String);
use strictwithout
function func() {
this.a = 1;
return this;
}
console.log(func.call(null) === window);
console.log(func.call('a') instanceof String);
use strictwithout
function func() {
this.a = 1;
return this;
}
console.log(func.call(null) === window);
console.log(func.call('a') instanceof String);
use strictwithout
function func() {
this.a = 1;
return this;
}
console.log(func.call(null) === window);
console.log(func.call('a') instanceof String);
use strictwithout
function func() {
this.a = 1;
return this;
}
console.log(func.call(null) === window);
console.log(func.call('a') instanceof String);
use strictwithout
?
function func() {
this.a = 1;
return this;
}
console.log(func.call(null) === window);
console.log(func.call('a') instanceof String);
use strictwithout
function func() {
'use strict';
this.a = 1;
return this;
}
console.log(func.call(null) === window);
console.log(func.call('a') instanceof String);
use strictwith
?
function func() {
'use strict';
this.a = 1;
return this;
}
console.log(func.call(null) === window);
console.log(func.call('a') instanceof String);
use strictwith
var a = 'global';
function b() {
var a = 'local';
var c = 'c local';
return a;
}
console.log(a);
console.log(b());
console.log(c);
ScopeAvoid Global
var a = 'global';
function b() {
var a = 'local';
var c = 'c local';
return a;
}
console.log(a);
console.log(b());
console.log(c);
ScopeAvoid Global
var a = 'global';
function b() {
var a = 'local';
var c = 'c local';
return a;
}
console.log(a);
console.log(b());
console.log(c);
ScopeAvoid Global
var a = 'global';
function b() {
var a = 'local';
var c = 'c local';
return a;
}
console.log(a);
console.log(b());
console.log(c);
ScopeAvoid Global
?
var a = 'global';
function b() {
var a = 'local';
var c = 'c local';
return a;
}
console.log(a); // 'global'
console.log(b());
console.log(c);
ScopeAvoid Global
var a = 'global';
function b() {
var a = 'local';
var c = 'c local';
return a;
}
console.log(a);
console.log(b()); // 'local'
console.log(c);
ScopeAvoid Global
var a = 'global';
function b() {
var a = 'local';
var c = 'c local';
return a;
}
console.log(a);
console.log(b());
console.log(c); // ReferenceError: c is not defined
ScopeAvoid Global
var a = 'global';
function b() {
var a = 'local';
var c = 'c local';
return a;
}
console.log(a); // 'global'
console.log(b()); // 'local'
console.log(c); // ReferenceError: c is not defined
ScopeAvoid Global
var a = 'global';
function b() {
a = 'local';
return a;
}
console.log(a);
console.log(b());
ScopeAvoid Global
var a = 'global';
function b() {
a = 'local';
return a;
}
console.log(a);
console.log(b());
ScopeAvoid Global
var a = 'global';
function b() {
a = 'local';
return a;
}
console.log(a);
console.log(b());
ScopeAvoid Global
?
var a = 'global';
function b() {
a = 'local';
return a;
}
console.log(a); // global
console.log(b()); // local
ScopeAvoid Global
var a = 'global';
function b() {
a = 'local';
return a;
}
console.log(b());
console.log(a);
ScopeAvoid Global
?
var a = 'global';
function b() {
a = 'local';
return a;
}
console.log(b()); // local
console.log(a); // local
ScopeAvoid Global
(function() {
'use strict';
function myModule() {
return 'hey!';
}
console.log(myModule()); // 'hey!'
})(); ScopeAvoid Global
(function() {
'use strict';
function myModule() {
return 'hey!';
}
window.myModule = myModule;
})();
console.log(window.myModule());
console.log(myModule()); ScopeAvoid Global
(function() {
'use strict';
function myModule() {
return 'hey!';
}
window.myModule = myModule;
})();
console.log(window.myModule());
console.log(myModule()); ScopeAvoid Global
(function() {
'use strict';
function myModule() {
return 'hey!';
}
window.myModule = myModule;
})();
console.log(window.myModule());
console.log(myModule()); ScopeAvoid Global
(function(win, $) {
'use strict';
function myModule() {
return $('[data-js="container"]').html();
}
win.myModule = myModule;
})(window, jQuery);
ScopeUse local
(function(win, $) {
'use strict';
function myModule() {
return $('[data-js="container"]').html();
}
win.myModule = myModule;
})(window, jQuery);
ScopeUse local
(function(win, $) {
'use strict';
function myModule() {
return $('[data-js="container"]').html();
}
win.myModule = myModule;
})(window, jQuery);
ScopeUse local
(function(win) {
'use strict';
function myModule() {
return 'hey!';
}
win.MyProjectName = win.MyProjectName || {};
win.MyProjectName.myModule = myModule;
})(window);
console.log(MyProjectName.myModule()); // 'hey!'
namespaceUse a
(function(win) {
'use strict';
function myModule() {
return 'hey!';
}
win.MyProjectName = win.MyProjectName || {};
win.MyProjectName.myModule = myModule;
})(window);
console.log(MyProjectName.myModule()); // 'hey!'
namespaceUse a
(function(win) {
'use strict';
function myModule() {
return 'hey!';
}
win.MyProjectName = win.MyProjectName || {};
win.MyProjectName.myModule = myModule;
})(window);
console.log(MyProjectName.myModule()); // 'hey!'
namespaceUse a
(function(win) {
'use strict';
function myModule() {
return 'hey!';
}
win.MyProjectName = win.MyProjectName || {};
win.MyProjectName.myModule = myModule;
})(window);
console.log(MyProjectName.myModule()); // 'hey!'
namespaceUse a
var $links = document.querySelectorAll('a');
console.log($links.length);
console.log($links[0]);
console.log(Array.isArray($links));
console.log($links.pop());
into arrayConvert array-like
var $links = document.querySelectorAll('a');
console.log($links.length);
console.log($links[0]);
console.log(Array.isArray($links));
console.log($links.pop());
into arrayConvert array-like
var $links = document.querySelectorAll('a');
console.log($links.length); // 10
console.log($links[0]);
console.log(Array.isArray($links));
console.log($links.pop());
into arrayConvert array-like
var $links = document.querySelectorAll('a');
console.log($links.length);
console.log($links[0]); // <a href=""></a>
console.log(Array.isArray($links));
console.log($links.pop());
into arrayConvert array-like
var $links = document.querySelectorAll('a');
console.log($links.length);
console.log($links[0]);
console.log(Array.isArray($links)); // false
console.log($links.pop());
into arrayConvert array-like
var $links = document.querySelectorAll('a');
console.log($links.length);
console.log($links[0]);
console.log(Array.isArray($links));
console.log($links.pop());
// TypeError: $links.pop is not a function
into arrayConvert array-like
var numbers = [10, 20, 30, 40, 50];
console.log(numbers.slice(0, 2)); // [10, 20]
into arrayConvert array-like
var numbers = [10, 20, 30, 40, 50];
console.log(numbers.slice(1, 4));
// [20, 30, 40]
into arrayConvert array-like
var numbers = [10, 20, 30, 40, 50];
console.log(numbers.slice(1, 10));
// [20, 30, 40, 50]
into arrayConvert array-like
var numbers = [10, 20, 30, 40, 50];
console.log(numbers.slice(1));
// [20, 30, 40, 50]
into arrayConvert array-like
var numbers = [10, 20, 30, 40, 50];
console.log(numbers.slice(0));
// [10, 20, 30, 40, 50]
into arrayConvert array-like
var numbers = [10, 20, 30, 40, 50];
console.log(numbers.slice());
// [10, 20, 30, 40, 50]
into arrayConvert array-like
var numbers = [10, 20, 30, 40, 50];
var numbers2 = numbers.slice();
console.log(numbers === numbers2); // false
into arrayConvert array-like
var numbers = [10, 20, 30, 40, 50];
var numbers2 = numbers;
console.log(numbers === numbers2); // true
into arrayConvert array-like
var $links = document.querySelectorAll('a');
console.log($links.length); // 10
console.log(Array.isArray($links)); // false
console.log($links.pop());
// TypeError: $links.pop is not a function
into arrayConvert array-like
var $links = Array.prototype.slice.call(
document.querySelectorAll('a')
);
console.log($links.length);
console.log(Array.isArray($links));
console.log($links.pop());
into arrayConvert array-like
var $links = Array.prototype.slice.call(
document.querySelectorAll('a')
);
console.log($links.length); // 10
console.log(Array.isArray($links));
console.log($links.pop());
into arrayConvert array-like
var $links = Array.prototype.slice.call(
document.querySelectorAll('a')
);
console.log($links.length);
console.log(Array.isArray($links)); // true
console.log($links.pop());
into arrayConvert array-like
var $links = Array.prototype.slice.call(
document.querySelectorAll('a')
);
console.log($links.length);
console.log(Array.isArray($links));
console.log($links.pop()); // <a href=""></a>
into arrayConvert array-like
function func() {
return Array.isArray(arguments);
}
console.log(func(1, 2, 3));
into arrayConvert array-like
function func() {
return Array.isArray(arguments);
}
console.log(func(1, 2, 3));
into arrayConvert array-like
function func() {
return Array.isArray(arguments);
}
console.log(func(1, 2, 3)); // false
into arrayConvert array-like
function func() {
var args = Array.prototype.slice.call(arguments);
return Array.isArray(args);
}
console.log(func(1, 2, 3));
into arrayConvert array-like
function func() {
var args = Array.prototype.slice.call(arguments);
return Array.isArray(args);
}
console.log(func(1, 2, 3)); // true
into arrayConvert array-like
function test() {
return typeof arguments;
}
console.log(test()); // object
object typesGetting real
function test() {
return Object.prototype.toString.call(
arguments
);
}
console.log(test()); // [object Arguments]
object typesGetting real
function is(type, object) {
type = type[0].toUpperCase() + type.slice(1);
return Object.prototype.toString
.call(object) === '[object ' + type + ']';
}
object typesGetting real
function is(type, object) {
type = type[0].toUpperCase() + type.slice(1);
return Object.prototype.toString
.call(object) === '[object ' + type + ']';
}
object typesGetting real
function is(type, object) {
type = type[0].toUpperCase() + type.slice(1);
return Object.prototype.toString
.call(object) === '[object ' + type + ']';
}
object typesGetting real
function is(type, object) {
type = type[0].toUpperCase() + type.slice(1);
return Object.prototype.toString
.call(object) === '[object ' + type + ']';
}
object typesGetting real
function is(type, object) {
type = type[0].toUpperCase() + type.slice(1);
return Object.prototype.toString
.call(object) === '[object ' + type + ']';
}
object typesGetting real
is(object', {});
is('array', []);
is('function', function() {});
is('object', []);
object typesGetting real
is(object', {}); // true
is('array', []);
is('function', function() {});
is('object', []);
object typesGetting real
is(object', {});
is('array', []); // true
is('function', function() {});
is('object', []);
object typesGetting real
is(object', {});
is('array', []);
is('function', function() {}); // true
is('object', []);
object typesGetting real
is(object', {});
is('array', []);
is('function', function() {});
is('object', []); // false
object typesGetting real
var numbers = [10, 20, 30];
for(var i = 0; i < numbers.length; i++) {
console.log('array[' + i + '] =', numbers[i]);
}
instead loopsUse array methods
var numbers = [10, 20, 30];
for(var i = 0; i < numbers.length; i++) {
console.log('array[' + i + '] =', numbers[i]);
}
instead loopsUse array methods
var numbers = [10, 20, 30];
for(var i = 0; i < numbers.length; i++) {
console.log('array[' + i + '] =', numbers[i]);
}
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index) {
console.log('array[' + index + '] =', item);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index) {
console.log('array[' + index + '] =', item);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index) {
console.log('array[' + index + '] =', item);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
function logNumbers(item, index) {
console.log('array[' + index + '] =', item);
}
numbers.forEach(logNumbers);
instead loopsUse array methods
var numbers = [10, 20, 30];
function logNumbers(item, index) {
console.log('array[' + index + '] =', item);
}
numbers.forEach(logNumbers);
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index, array) {
console.log('array[' + index + '] =', array[index]);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index, array) {
console.log('array[' + index + '] =', array[index]);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index, array) {
console.log('array[' + index + '] =', array[index]);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index, array) {
console.log('array[' + index + '] =', this[index]);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index, array) {
console.log('array[' + index + '] =', this[index]);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
numbers.forEach(function(item, index, array) {
console.log('array[' + index + '] =', this[index]);
});
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = [11, 21, 31];
function logNumbers(item, index, array) {
console.log('array[' + index + '] =', this[index]);
}
numbers.forEach(logNumbers, numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = [11, 21, 31];
function logNumbers(item, index, array) {
console.log('array[' + index + '] =', this[index]);
}
numbers.forEach(logNumbers, numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = [11, 21, 31];
function logNumbers(item, index, array) {
console.log('array[' + index + '] =', this[index]);
}
numbers.forEach(logNumbers, numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.map(plusOne);
function plusOne(number) {
return number + 1;
}
console.log(numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.map(plusOne);
function plusOne(number) {
return number + 1;
}
console.log(numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.map(plusOne);
function plusOne(number) {
return number + 1;
}
console.log(numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.map(plusOne);
function plusOne(number) {
return number + 1;
}
console.log(numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.map(plusOne);
function plusOne(number) {
return number + 1;
}
console.log(numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.map(plusOne);
function plusOne(number) {
return number + 1;
}
console.log(numbers2);
instead loopsUse array methods
?
var numbers = [10, 20, 30];
var numbers2 = numbers.map(plusOne);
function plusOne(number) {
return number + 1;
}
console.log(numbers2); // [11, 21, 31]
instead loopsUse array methods
var numbers = [10, 20, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven);
instead loopsUse array methods
var numbers = [10, 20, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven);
instead loopsUse array methods
var numbers = [10, 20, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven);
instead loopsUse array methods
var numbers = [10, 20, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven);
instead loopsUse array methods
var numbers = [10, 20, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven);
instead loopsUse array methods
var numbers = [10, 20, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven);
instead loopsUse array methods
?
var numbers = [10, 20, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven); // true
instead loopsUse array methods
var numbers = [10, 20, 25, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven);
instead loopsUse array methods
var numbers = [10, 20, 25, 30];
var isAllEven = numbers.every(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(isAllEven); // false
instead loopsUse array methods
var numbers = [11, 21, 30];
var hasEven = numbers.some(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(hasEven);
instead loopsUse array methods
?
var numbers = [11, 21, 30];
var hasEven = numbers.some(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(hasEven); // true
instead loopsUse array methods
var numbers = [11, 21, 31];
var hasEven = numbers.some(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(hasEven);
instead loopsUse array methods
var numbers = [11, 21, 31];
var hasEven = numbers.some(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(hasEven); // false
instead loopsUse array methods
var numbers = [11, 21, 30];
var justEven = numbers.filter(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(justEven);
instead loopsUse array methods
var numbers = [11, 21, 30];
var justEven = numbers.filter(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(justEven);
instead loopsUse array methods
var numbers = [11, 21, 30];
var justEven = numbers.filter(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(justEven);
instead loopsUse array methods
?
var numbers = [11, 21, 30];
var justEven = numbers.filter(checkEven);
function checkEven(number) {
return number % 2 === 0;
}
console.log(justEven); // [30]
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
?
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum); // 60
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum); // 60
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum); // 60
instead loopsUse array methods
= 30
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum); // 60
instead loopsUse array methods
30
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum); // 60
instead loopsUse array methods
= 6030
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum, 1);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum, 1);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum, 1);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum);
instead loopsUse array methods
?
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum, 1);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum); // 61
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum, 1);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum); // 61
instead loopsUse array methods
var numbers = [10, 20, 30];
var resultSum = numbers.reduce(sum, 1);
function sum(previous, actual) {
return previous + actual;
}
console.log(resultSum); // 61
instead loopsUse array methods
var myName = ['fer', 'nan', 'do'];
var pName = myName.reduce(pLanguage, '');
function pLanguage(previous, actual) {
return previous + 'P' + actual;
}
console.log(pName);
instead loopsUse array methods
var myName = ['fer', 'nan', 'do'];
var pName = myName.reduce(pLanguage, '');
function pLanguage(previous, actual) {
return previous + 'P' + actual;
}
console.log(pName);
instead loopsUse array methods
var myName = ['fer', 'nan', 'do'];
var pName = myName.reduce(pLanguage, '');
function pLanguage(previous, actual) {
return previous + 'P' + actual;
}
console.log(pName);
instead loopsUse array methods
var myName = ['fer', 'nan', 'do'];
var pName = myName.reduce(pLanguage, '');
function pLanguage(previous, actual) {
return previous + 'P' + actual;
}
console.log(pName);
instead loopsUse array methods
var myName = ['fer', 'nan', 'do'];
var pName = myName.reduce(pLanguage, '');
function pLanguage(previous, actual) {
return previous + 'P' + actual;
}
console.log(pName);
instead loopsUse array methods
?
var myName = ['fer', 'nan', 'do'];
var pName = myName.reduce(pLanguage, '');
function pLanguage(previous, actual) {
return previous + 'P' + actual;
}
console.log(pName); // PferPnanPdo
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.reduce(newArray, []);
function newArray(previous, actual) {
previous.push(actual);
return previous;
}
console.log(numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.reduce(newArray, []);
function newArray(previous, actual) {
previous.push(actual);
return previous;
}
console.log(numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.reduce(newArray, []);
function newArray(previous, actual) {
previous.push(actual);
return previous;
}
console.log(numbers2);
instead loopsUse array methods
var numbers = [10, 20, 30];
var numbers2 = numbers.reduce(newArray, []);
function newArray(previous, actual) {
previous.push(actual);
return previous;
}
console.log(numbers2);
instead loopsUse array methods
?
var numbers = [10, 20, 30];
var numbers2 = numbers.reduce(newArray, []);
function newArray(previous, actual) {
previous.push(actual);
return previous;
}
console.log(numbers2); // [10, 20, 30]
instead loopsUse array methods
var $link = document.querySelector('a');
$link.onclick = function() {
console.log('clicked!');
};
with eventsWorking
var $link = document.querySelector('a');
$link.onclick = function() {
console.log('clicked!');
};
with eventsWorking
var $link = document.querySelector('a');
$link.onclick = function() {
console.log('clicked!');
};
with eventsWorking
var $link = document.querySelector('a');
$link.onclick = function() {
console.log('clicked!');
};
with eventsWorking
?
var $link = document.querySelector('a');
$link.onclick = function() {
console.log('clicked!');
};
// 'clicked!'
with eventsWorking
var $link = document.querySelector('a');
$link.onclick = function() {
console.log('clicked!');
};
$link.onclick = function() {
console.log('clicked again!');
};
with eventsWorking
?
var $link = document.querySelector('a');
$link.onclick = function() {
console.log('clicked!');
};
$link.onclick = function() {
console.log('clicked again!');
};
// 'clicked again!'
with eventsWorking
var $link = document.querySelector('a');
$link.addEventListener('click', function() {
console.log('clicked!');
}, false);
$link.addEventListener('click', function() {
console.log('clicked again!');
}, false);
with eventsWorking
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
}
with closuresRemembering values
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
}
with closuresRemembering values
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
}
with closuresRemembering values
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
}
with closuresRemembering values
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
}
with closuresRemembering values
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
}
with closuresRemembering values
?
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
}
with closuresRemembering values
var $links = Array.prototype.slice.call(
document.querySelectorAll('a')
);
$links.forEach(function($link, index) {
$link.addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', index);
}, false);
});
with closuresRemembering values
var $links = Array.prototype.slice.call(
document.querySelectorAll('a')
);
$links.forEach(function($link, index) {
$link.addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', index);
}, false);
});
with closuresRemembering values
var $links = Array.prototype.slice.call(
document.querySelectorAll('a')
);
$links.forEach(function($link, index) {
$link.addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', index);
}, false);
});
with closuresRemembering values
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) (function(i) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
})(i);
with closuresRemembering values
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) (function(i) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
})(i);
with closuresRemembering values
var $links = document.querySelectorAll('a');
for(var i = 0; i < $links.length; i++) (function(i) {
$links[i].addEventListener('click', function(e) {
e.preventDefault();
console.log('counter:', i);
}, false);
})(i);
with closuresRemembering values
parseInt('s55', 10); // NaN
parseInt('10px', 10); // 10
parseInt('1.5x25', 10); // 1
parseInt('0x25', 10); // 0
to numberConverting
parseFloat('s55'); // NaN
parseFloat('10px'); // 10
parseFloat('1.5x25'); // 1.5
parseFloat('0x25'); // 0
to numberConverting
parseFloat('s55'); // NaN
parseFloat('10px'); // 10
parseFloat('1.5x25'); // 1.5
parseFloat('0x25'); // 0
to numberConverting