Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 28 additions & 17 deletions challenge-09/challenge-09.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Crie uma IIFE que envolva todo o código desse arquivo. Faça também a
indentação correta do código, para ficar dentro da IIFE.
*/
(function(){

/*
Analise as funções abaixo (`myFunction`, `myFunction2` e `myFunction3`, e
Expand All @@ -10,24 +11,24 @@ dentro de `console.log` que estão retornando `undefined` retornem o valor
correto da variável ou função chamada.
*/
function myFunction() {
var number1 = 10;
var number2 = 20;
console.log( 'Na função `myFunction`, o primeiro número é', number1 );
console.log( 'Na função `myFunction`, o segundo número é', number2 );
var number1 = 10;
return number1 + number2;
var number2 = 20;
}
myFunction();

/*
myFunction2();
*/
function myFunction2() {
console.log( 'A soma de 10 e 20 é igual a', sum ? sum() : undefined );
var number1 = 10;
var number2 = 20;
var sum = function sum() {
return number1 + number2;
};
var number1 = 10;
var number2 = 20;
console.log( 'A soma de 10 e 20 é igual a', sum ? sum() : undefined );
return sum();
}
myFunction2();
Expand All @@ -36,10 +37,10 @@ myFunction2();
myFunction3();
*/
function myFunction3() {
console.log( 'A soma de 40 e 50 é igual a', sum() );
var number1 = 40;
var number2 = 50;
console.log( 'Na função myFunction3, number1 é igual a', number1 );
var number1 = 40;
console.log( 'A soma de 40 e 50 é igual a', sum() );
return sum();
function sum() {
return number1 + number2;
Expand All @@ -60,13 +61,17 @@ o retorno de `calculator`.
por parâmetro, INVOCADA, e passando a ela por parâmetro os dois valores
que foram passadas para a primeira função `calculator`.
*/
// ?
function calculator(number1,number2){
return function(callback){
return callback(number1,number2);
}
}

/*
Declare uma variável chamada `sum`, e atribua a ela a função `calculator`,
passando dois números por parâmetro.
*/
// ?
var sum = calculator(10,25);

/*
Sabemos que `sum` agora tem uma função atribuída a ela, que é o retorno de
Expand All @@ -77,15 +82,18 @@ para a chamada à `calculator` acima.
uma função anônima que irá retornar a soma dos dois números que essa função
anônima tem como seus argumentos.
*/
console.log( 'O resultado da soma é:' );
// ?
console.log( 'O resultado da soma é: '+ sum(function(x,y){return x + y}));
// O resultado da soma é: 35

/*
Agora declare outra variáveis chamadas `subtraction`, `multiplication`,
`division` e `mod`, e atribua à elas `calculator`, passando números
diferentes para cada chamada.
*/
// ?
var subtraction = calculator(10,25);
var multiplication = calculator(10,6);
var division = calculator(10,2);
var mod = calculator(5,2);

/*
Mostre as variáveis acima no `console` (uma chamada de console por variável),
Expand All @@ -94,14 +102,17 @@ divisão e módulo (resto de divisão), conforme a função utilizada.
As suas respostas devem estar abaixo dos `console.log` referentes à cada
chamada.
*/
console.log( 'O resultado da subtração é:' );
console.log( 'O resultado da subtração é:' + subtraction(function(x,y){return x - y}) );
// ?

console.log( 'O resultado da multiplicação é:'+ multiplication(function(x,y){return x * y}));
// ?

console.log( 'O resultado da multiplicação é:' );
console.log( 'O resultado da divisão é:' + division(function(x,y){return x / y}) );
// ?

console.log( 'O resultado da divisão é:' );
console.log( 'O resto da divisão é:' + mod(function(x,y){return x % y}));
// ?

console.log( 'O resto da divisão é:' );
// ?
})()