В данной статье я вам покажу некоторые странности языка JavaScript, с которыми можно столкнуться, при работе с ним.
— Для типа null возвращается тип object
1 |
alert(typeof(null)); // object |
— Некорректные математические результаты
1 |
alert(0.1 + 0.2); // 0.30000000000000004 |
— Сравниваем null с 0
1 2 3 4 5 6 |
alert(null < 0); // false alert(null > 0); // false alert(null == 0); // false alert(null === 0); // false alert(null <= 0); // true alert(null >= 0); // true |
— Странное поведение NaN (Not a number)
1 2 |
alert(typeof(NaN)); // number alert(NaN === NaN); // false |
Тут необходимо сказать, что сравнение NaN с самим собой и возврат false считается корректным поведением, просто немногие об этом знают. Значение можно проверять сравнивая с самим собой и если будет возвращено false, это будет означать, что вы работаете с NaN.
Помимо этого, в JavaScript есть специальная функция для проверки на NaN — isNaN().
— Сравнение чисел
1 |
alert(11111111111111111 === 11111111111111112); // true |
Это конечно же не все странности, которыми владеет JavaScript, но я думаю примеры, приведённые в данной статье, являются показательными.