I have gone through similar questions and answers on StackOverflow and found this:

```
parseInt("123hui")
returns 123

Number("123hui")
returns NaN

```

As, `parseInt()` parses up to the first non-digit and returns whatever it had parsed and `Number()` tries to convert the entire string into a number, why unlikely behaviour in case of `parseInt('')` and `Number('')`.

I feel ideally `parseInt` should return `NaN`just like it does with `Number("123hui")`

Now my next question:

As `0 == ''` returns `true` I believe it interprets like `0 == Number('')` which is true. So does the compiler really treat it like `0 == Number('')` and not like `0 == parseInt('')` or am I missing some points?