3.2 Conceitos básicos de NodeJS: Conceitos básicos de JavaScript
NodeJS é uma plataforma de desenvolvimento de aplicações server-side baseada no interpretador V8 JavaScript Engine, do Google. Foi criado com o foco de otimizar a construção de aplicações escaláveis e de alta performance, através de um modelo de I/O não bloqueante e orientado a eventos. Porém, antes de mergulhar no universo NodeJS, precisamos entender alguns conceitos básicos de JavaScript, a linguagem na qual NodeJS se baseia.
JavaScript
JavaScript é uma linguagem de programação interpretada, dinâmica e de alto nível, que foi projetada inicialmente para adicionar interatividade às páginas web. Com o passar dos anos, JavaScript evoluiu e hoje é usado não apenas no lado do cliente (front-end), mas também no lado do servidor (back-end), graças a plataformas como NodeJS.
Variáveis e tipos de dados
Em JavaScript, você pode declarar variáveis usando as palavras-chave "var", "let" e "const". Cada uma tem seu próprio escopo e regras de uso. JavaScript é uma linguagem de tipagem dinâmica, o que significa que o tipo de dado de uma variável pode mudar durante a execução do código. Os tipos de dados em JavaScript incluem Number, String, Boolean, Object, Undefined e Null.
Funções
As funções em JavaScript são blocos de código que podem ser definidos e chamados pelo nome. As funções podem receber argumentos e retornar um valor. Em JavaScript, as funções são objetos de primeira classe, o que significa que eles podem ser passados como argumentos para outras funções, retornados como valores de outras funções, atribuídos a variáveis ou armazenados em estruturas de dados.
Objetos e Arrays
Os objetos em JavaScript são coleções de pares chave-valor. As chaves são strings e os valores podem ser qualquer tipo de dado. Os arrays são objetos especiais que representam listas de valores.
NodeJS
Agora que temos uma compreensão básica de JavaScript, podemos começar a explorar NodeJS. NodeJS nos permite usar JavaScript no lado do servidor, ou seja, podemos criar aplicações web completas usando apenas JavaScript.
Event Loop e I/O não bloqueante
A característica mais distintiva de NodeJS é seu modelo de I/O não bloqueante. Em muitas linguagens de programação, as operações de I/O (como leitura e escrita de arquivos, acesso a banco de dados, requisições HTTP) são bloqueantes, o que significa que a execução do código é pausada até que a operação de I/O seja concluída. Em contraste, NodeJS usa um modelo de I/O não bloqueante, no qual as operações de I/O são executadas em paralelo com a execução do código, através de um mecanismo chamado Event Loop.
Módulos
NodeJS possui um sistema de módulos integrado, que permite organizar o código em arquivos separados e reutilizar o código em diferentes partes da aplicação. Cada arquivo em NodeJS é considerado um módulo e pode exportar funções, objetos ou valores para serem usados em outros módulos.
NPM
NPM (Node Package Manager) é o gerenciador de pacotes de NodeJS. Com NPM, você pode instalar e gerenciar pacotes de terceiros, que são pedaços de código que outras pessoas escreveram e que você pode usar em suas aplicações. NPM é uma ferramenta essencial para qualquer desenvolvedor NodeJS.
Esses são apenas alguns dos conceitos básicos de JavaScript e NodeJS. Ao longo do curso, vamos explorar esses e outros conceitos em mais detalhes, e aprender a aplicá-los na prática para criar APIs robustas e eficientes em NodeJS.