Entenda a diferença UNDEFINED X NULL
Em JavaScript, uma variável ou propriedade com valor indefinido (undefined) significa que ela foi declarada, mas não foi atribuída com um valor, ou que ela foi explicitamente atribuída com o valor undefined.
Por outro lado, um valor nulo (null) significa que a variável ou propriedade foi intencionalmente atribuída com um valor nulo, indicando que ela não possui um valor válido.
Resumindo, uma variável com valor indefinido significa que ela ainda não tem um valor definido, enquanto uma variável com valor nulo tem um valor definido, que é a ausência de valor, confuso não? No próximo tópico vamos nos aprofundar!
Porque não atribuir intencionalmente um valor undefined
Não é interessante atribuir intencionalmente um valor undefined a uma variável ou propriedade em JavaScript porque undefined é um valor especial que indica que uma variável não foi inicializada ou que uma propriedade não está presente em um objeto.
A atribuição intencional de undefined a uma variável pode dificultar a depuração de erros e tornar o código mais propenso a bugs, pois pode ser confundido com uma variável não definida ou não inicializada corretamente.
Além disso, a maioria dos programadores prefere usar null para indicar explicitamente que uma variável não tem um valor válido, em vez de usar undefined. Por essas razões, é geralmente recomendado evitar a atribuição intencional de undefined em seu código e usar null em vez disso quando apropriado.
Porque os valores undefined e null são considerados falsy
Os valores undefined e null são considerados “falsy” em JavaScript porque eles são tratados como valores booleanos falsos em um contexto booleano.
Em JavaScript, existem valores que são avaliados como verdadeiros (truthy) e valores que são avaliados como falsos (falsy) em um contexto booleano. Quando um valor truthy é avaliado em um contexto booleano, ele é considerado verdadeiro, enquanto que quando um valor falsy é avaliado em um contexto booleano, ele é considerado falso.
Abordamos em maiores detalhes quais os tipos de dados são Falsy ou Truthy e maiores detalhes desses termos.