# ESLint

## ESLint

Everyone hates making mistakes. Javascript is a dynamic programming language and as such, there is not a compiler to warn us whenever we screw up. In contrast, a compiled programming language will catch most errors before your code is even ran.&#x20;

So a compiler finds many errors during **compile-time**. Dynamic languages will run into errors when actually running the code (or **run-time**).&#x20;

This is where ESLint comes in. Think of syntax-errors, or missing curly braces. When you have ESLint configured, a lot of errors will surface. In addition, ESLint also helps avoiding possible mistakes that do not necessarily result in an error.&#x20;

Have a look at the documentation: <https://eslint.org/>  &#x20;

{% hint style="info" %}
Sometimes **dynamically/statically** typed and **weakly/strongly** typed are mixed up. They have different meanings. Javascript is **dynamically** and **weakly** typed.&#x20;
{% endhint %}

```javascript
// Weak typing

let number = 10;
number += "5";
number // "105"
```

{% hint style="warning" %}
Errors in a dynamic programming language often surface during run-time. This means your customers may be the first to experience them. Make sure you lint and test your code!&#x20;
{% endhint %}
