If, For, Switch
-
Truthy and Falsy values
Falsy: undefined, null, 0, '', NaN.
Truthy: all others values.
String concatination / Concatenação de String
var string = "Hello";
// string += " World";
string = string + " World";
console.log(string + "!");
returns: Hello World!
Math operators: +, -, *, /
var calc = (5+4)/3;
console.log(calc);
returns: 3.
Equality / Igualdade somente de conteúdo
var x = '4', y = 4;
if (x == y) {
console.log("x=4 is equal to y=4");
}
returns: true. Será true porque o tipo da variável será convertido pelo JS para ser igual, portanto usa-se mais o === por segurança.
Strict equality - Igualdade de conteúdo e tipo da variável
var x = '4', y = 4; -> Veja que '4' é string e 4 é int, por isso dará false.
if (x === y) {
console.log("Strict: x='4' is equal to y=4");
}
else {
console
.log("Strict: x='4' is NOT equal to y=4");
}
returns: false. Although they are both 4, x is a string and y is a int.
If statement OR ||
if ( null || undefined || "" ) {
console.log("This line won't ever execute");
}
If statement AND &&
if (true && "hello" ) {
console.log("All true");
}
FOR loop
var sum = 0;
for (i=0; i < 10; i++){
sum = i;
}
console.log('O valor do i é: ' + i); //returns: 10.
console.log('O valor de sum é: ' + sum); //returns: 9.
Portanto, o for verifica que 9 < 10 = true, então executa as chaves e DEPOIS i++.
Até aqui temos i=10 e sum = 9.
Visto que na próxima verificação do for, teremos 10 < 10 = false, não irá entrar novamente nas chaves e com isso sum permanece sum = 9.
Conclui-se que verifica-se se condição é verdadeira, executa as chaves e DEPOIS executa o i++.
Ternary Operator
activePlayer === 0 ? activePlayer = 1 : activePlayer = 0;
if activePlayer is equal to 0 then activePlayer equals to else activePlayer equals to 0.
Portanto, ? = then e : = else.
Exemplo com um if normal:
if(activePlayer ===){
activePlayer = 1;
} else {
activePlayer = 0;
}
var firstName = 'John';
var age = 14;
age >= 18 ? console.log(firstName + 'drinks beer.') : console.log(firstName + ' drinks juice.');
returns: John drinks juice.
Exemplo de uso: associar um valor a uma variável:
var drink = age >= 18 ? 'beer' : 'juice';
console.log(drink);
returns: juice.
Caso fosse utilizar um if para esse mesmo propósito:
if (age >= 18){
var drink = 'beer';
} else {
var drink = juice;
}
console.log(drink);
returns: juice.
Portanto: Condição ? true : false
? é o if, a pergunta.
Caso o if seja true, será executada a primeira condição a direita dele.
: é o else, no caso da resposta ser false.
Switch Statement
var job = 'teacher';
switch (job){
case 'teacher':
console.log(firstName + 'teaches kids how to code.');
break;
case 'designer':
console.log(firstName + 'designs websites.');
break;
default:
console.log(firstName + 'does something else.');
}
Lembrar de adicionar um default para evitar erros.
var firstName = 'Victor';
var age = 20;
switch(true){ //truque para utilizar rangers nas comparações.
case age > 18:
console.log(firstName + ' is a young man.');
break;
default:
console.log('Failed to obtain age number.');
}
General Example
console.log('Welcome to Pearson Hardman basketball finals!');
var harvey = (89 + 120 + 103)/3;
var mike = (116 + 94 + 123)/3;
var donna = (97 + 134 + 105)/3;
console.log('The final scores are: \n');
console.log('Harvey with ' + harvey + ' points.\n');
console.log('Mike with ' + mike + ' points.\n');
console.log('Donna with ' + donna + ' points.\n');
console.log('The winner of this year\'s basketball finals is:\n');
if (harvey > mike && harvey > donna){
console.log('Harvey!');
} else if (mike > harvey && mike > donna) {
console.log('Mike!');
} else if(donna > harvey && donna > mike){
console.log('Donna!');
} else {
console.log('We have a draw!');
}