Trilhas
/
JavaScript
JavaScript
/
Programa
/
Noções básicas
No

Noções básicas em JavaScript

3 exercícios

Sobre Noções básicas

JavaScript é uma linguagem dinâmica e baseada em protótipos. Ela tem alguns primitivos, e todo o resto é considerado um objeto.

Embora seja mais conhecida como a linguagem de script para páginas web, muitos ambientes fora do navegador também a usam, como o Node.js. A linguagem está em desenvolvimento ativo e, por causa da sua natureza multiparadigma, permite vários estilos de programação. JavaScript é uma linguagem dinâmica, com suporte a estilos orientado a objetos, imperativo e declarativo (por exemplo, programação funcional).

(Re)Atribuição

Há algumas formas principais de atribuir valores a nomes em JavaScript: usando variáveis ou constantes. No Exercism, variáveis são sempre escritas em camelCase; constantes são escritas em SCREAMING_SNAKE_CASE. Não existe um guia oficial a seguir, e várias empresas e organizações têm guias de estilo variados. Fique à vontade para escrever as variáveis do jeito que quiser. A vantagem de escrevê-las do jeito que os exercícios são preparados é que elas serão destacadas de forma diferente na interface web e na maioria das IDEs.

Variáveis em JavaScript podem ser definidas com a palavra-chave const, let ou var.

Uma variável pode referenciar valores diferentes ao longo do seu tempo de vida quando você usa let ou var. Por exemplo, myFirstVariable pode ser definida e redefinida várias vezes usando o operador de atribuição =:

let myFirstVariable = 1;
myFirstVariable = 'Some string';
myFirstVariable = new SomeComplexClass();

Em contraste com let e var, variáveis definidas com const só podem ser atribuídas uma vez. Isso é usado para definir constantes em JavaScript.

const MY_FIRST_CONSTANT = 10;

// Can not be re-assigned.
MY_FIRST_CONSTANT = 20;
// => TypeError: Assignment to constant variable.

Atribuição de constantes

A palavra-chave const é mencionada tanto para variáveis quanto para constantes. Outro conceito frequentemente mencionado em torno de constantes é o de (im)mutabilidade.

A palavra-chave const só torna a ligação imutável, ou seja, você só pode atribuir um valor a uma variável const uma vez. Em JavaScript, apenas valores primitivos são imutáveis. Porém, valores não primitivos ainda podem sofrer mutação.

const MY_MUTABLE_VALUE_CONSTANT = { food: 'apple' };

// This is possible
MY_MUTABLE_VALUE_CONSTANT.food = 'pear';

MY_MUTABLE_VALUE_CONSTANT;
// => { food: "pear" }

Valor constante (imutabilidade)

Como regra, no Exercism, e em muitos outros guias de estilo de organizações e projetos, não se mutam valores que se parecem com const SCREAMING_SNAKE_CASE. Tecnicamente, os valores podem ser alterados, mas, por clareza e para administrar expectativas no Exercism, isso é desencorajado. Quando isso precisa ser garantido, use Object.freeze(value).

const MY_VALUE_CONSTANT = Object.freeze({ food: 'apple' });

// This silently fails
MY_VALUE_CONSTANT.food = 'pear';

MY_VALUE_CONSTANT;
// => { food: "apple" }

Na prática, é improvável ver Object.freeze espalhado por toda uma base de código, mas a regra de nunca mutar um valor SCREAMING_SNAKE_CASE é uma boa regra; muitas vezes aplicada por meio de análise automatizada, como um linter.

Declarações de funções

Em JavaScript, unidades de funcionalidade são encapsuladas em funções, geralmente agrupando funções no mesmo arquivo quando elas andam juntas. Essas funções podem receber parâmetros (argumentos) e podem retornar um valor usando a palavra-chave return. As funções são chamadas usando a sintaxe ().

function add(num1, num2) {
  return num1 + num2;
}

add(1, 3);
// => 4

💡 Em JavaScript existem muitas formas diferentes de declarar uma função. Essas outras formas se parecem diferentes de usar a palavra-chave function. A trilha tenta apresentá-las aos poucos, mas, se você já as conhece, fique à vontade para usar qualquer uma delas. Na maioria dos casos, usar uma ou outra não é melhor nem pior.

Exportação e importação

As palavras-chave export e import são ferramentas poderosas que transformam um arquivo JavaScript comum em um módulo JavaScript. Além de permitir que o código exponha seletivamente components, como funções, classes, variáveis e constantes, elas também habilitam toda uma gama de outros recursos, como:

Um exemplo concreto é como os testes funcionam na trilha de JavaScript do Exercism. Cada exercício tem pelo menos um arquivo de implementação, por exemplo lasagna.js, e cada exercício tem pelo menos um arquivo de teste, por exemplo lasagna.spec.js. O arquivo de implementação usa export para expor a API pública, e o arquivo de teste usa import para acessá-la, e é assim que ele consegue testar os resultados da implementação.

// file.js
export const MY_VALUE = 10;

export function add(num1, num2) {
  return num1 + num2;
}

// file.spec.js
import { MY_VALUE, add } from './file';

add(MY_VALUE, 5);
// => 15
Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Noções básicas