Páginas

terça-feira, 27 de junho de 2017

Comparação de Java e JavaScript:

Nesta lição escreveremos código JavaScript. Ajuda você já ter experiência em JavaScript, mas o instruiremos por cada linha de código para escrever. Você tem experiência de programação com Java suficiente para entender o código desta lição. Abaixo você encontrará uma referência rápida das diferenças sintáticas e semânticas entre Java e JavaScript. Se você quiser aprender mais sobre JavaScript, considere cursar o curso JavaScript Basics.
Comparação de Java e JavaScript:

Tipo

Descubra mais sobre tipos aqui.
Java: Tipo Static
Variáveis são associadas com um tipo:
String name = "Firebase";
name = 3; // ERRO
JavaScript: Tipo Dinâmico
Variáveis não são associadas com um tipo
var name = "Firebase";
name = 3; // OK

Constantes

Java:
final x = 42;
x = 1024; // ERRO
const x = 42;
x = 1024 // ERRO

Ponto-e-vírgula no fim da linha?

Java: Ponto-e-vírgula no fim da linha
int x = 42;
JavaScript:
Ponto-e-vírgula é opcional
var x = 42 // OK
var y = 1024; // Também OK

Logando no console/área de debug

Java:
System.out.println("Message");

// Android-específico
Log.d(TAG, "Message");
JavaScript:
console.log("Message");

Equalidade de Tipos

Java:
== para primitivos, .equals() para objetos
JavaScript:
=== para equalidade estrita

Passando valores a arrays

Java:
ArrayList arrayList = new ArrayList<>();
arrayList.add(10);
JavaScript:
var array = [];
array.push(10);

Sintaxe de Método/Função

Java:
public int multiply(int a, int b) {
  return a * b;
}
JavaScript:
Declaração de Função:
function multiply(a, b) {
    return a * b;
}
ou, expressão de função:
// Atribuição de variável
var multiply = function(a, b) {
  return a * b;
}
ou, função de flecha
// Novo no ES2016; substitui a palavra-chave "function"
var multiply = (a ,b) => {
  return a  b;
}

Strings

Java:
Apenas aspas duplas representam strings:
String name = "Firebase";
JavaScript:
Aspas duplas e simples representam strings:
var str1 = "this is a valid string";
var str2 = 'and this is too';
Interpolação de String com aspas inclinadas e ${}:
var name = 'puf';
var message = `Hello ${name}!`; // Hello puf!

Loops

Java:
String[] list = {"apple", "pear", "orange"};

for (int i = 0; i < list.length; i++) {
    System.out.println(list[i]);
}
JavaScript:
var list = ['apple', 'pear', 'orange'];

for (i = 0; i < list.length(); i++) {
    console.log(list[i]);
}
Ou
for (var index in list) {
     console.log(list[index])
}

Importando uma biblioteca

Java:
import java.util.ArrayList;
JavaScript:
Use require() e associe o resultado a uma variável para uso posterior:
var child_process = require('child_process');
java String name = "Firebase"; name = 3; // ERROR

**JavaScript:** Dynamic Type

Variables are not associated with a type

```javascript
var name = "Firebase";
name = 3; // OK

Constants

Java:
final x = 42;
x = 1024; // ERROR
const x = 42;
x = 1024 // ERROR

Semicolons at the end of statements?

Java: Semicolons at the end of statements
int x = 42;
JavaScript:
Optional semicolons
var x = 42 // OK
var y = 1024; // Also OK

Logging to the console/debug area

Java:
System.out.println("Message");

// Android-specific
Log.d(TAG, "Message");
JavaScript:
console.log("Message");

Typesafe Equality

Java:
== for primitives, .equals() for objects
JavaScript:
=== for strict equality

Pushing values to arrays

Java:
ArrayList arrayList = new ArrayList<>();
arrayList.add(10);
JavaScript:
var array = [];
array.push(10);

Method/Function syntax

Java:
public int multiply(int a, int b) {
  return a * b;
}
JavaScript:
Function declaration:
function multiply(a, b) {
    return a * b;
}
or, function expression:
// Variable assignment
var multiply = function(a, b) {
  return a  b;
}
or, arrow function
// New in ES2016; drops "function" keyword
var multiply = (a ,b) => {
  return a  b;
}

Strings

Java:
Only double quotes represent strings:
String name = "Firebase";
JavaScript:
Double and single quotes represent strings:
var str1 = "this is a valid string";
var str2 = 'and this is too';
String interpolation with backtick quotes and ${}:
var name = 'puf';
var message = `Hello ${name}!`; // Hello puf!

Loops

Java:
String[] list = {"apple", "pear", "orange"};

for (int i = 0; i < list.length; i++) {
    System.out.println(list[i]);
}
JavaScript:
var list = ['apple', 'pear', 'orange'];

for (i = 0; i < list.length(); i++) {
console.log(list[i]);
}
Or
for (var index in list) {
     console.log(list[index])
}

Importing a library

Java:
import java.util.ArrayList;
JavaScript:
Use require() and assign the result to a variable for later use:
var child_process = require('child_process');
Referência: https://classroom.udacity.com/courses/firebase/Android