Насколько JavaScript сильный?
Сергей Ufocoder написал статью про приведение типов в JavaScript — "Насколько JavaScript сильный?".
Слабая система типов JavaScript стала источником большого числа шуток и недопониманий. Но насколько она слаба и можно ли её усилить? В статье проводится исследование неявных преобразований типов в JavaScript. Разбираются все возможные варианты приведений. Рассказывается, в каких случаях можно "усилить" систему типов. В статье есть очень много отсылок к спецификации с несложными объяснениями.
Вот некоторые выводы из статьи. Из 40 возможных приведений типов есть 3 контролируемых преобразования, 5 явных приведений, 9 преобразований типов невозможны (здесь JS проявляет свою строгость) и 23 неконтролируемых приведения типов.
В общем, статья большая и подробная. Рекомендую почитать, если хотите углубить свои знания в JavaScript.
https://medium.com/devschacht/javascript-coercions-9a36505c1370