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 estritaPassando 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 equalityPushing 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