Щось давненько я про політику не писав, треба виправлятись, правда народ?
Знати багато мов добре, кажуть ще що скільки мов ти знаєш – стільки разів ти програміст. Але при їх використанні має відбуватись якесь перемикання контексту. А якщо мови мають подібні парадигми – часом це перемикання відбувається не повністю. Тут на сторожі мали б стояти граммар-наці – аналізатори синтаксису, але буває так що вони занадто поблажливі.
Ось наприклад якось я написав подібний код:
function hello(msg='Hello world!') { alert(msg); } hello(1); hello();
Ви нічого підозрілого не помітили? Я теж. Зауважу, що це JavaScript. Тестую в FireFox. Він каже “1″, “Hello world!”. Я щасливий, закриваю браузер, закриваю редактор і йду спати.
Потім проходить певний час, і мені пишуть що нічого не працює. Я відкриваю FireFox, все працює… Шляхом деяких переговорів встановлено що не працює воно в Chrome.
Відкриваю в Chrome, а там:
Виявляється, що те що я написав вище – таки не JavaScript, а Python-суржик. Правильно писати параметри за замовчуванням в JavaScript наступним чином:
function hello(msg) { if(typeof(msg) === 'undefined') msg = 'Hello world!'; alert(msg); }
Тепер думаю, невже SpiderMonkey реалізує якусь надмножину JavaScript?
Ну й простіше звісно було б знати одну мову добре, а не всі по трохи, тільки от біда, ніяк не вгадаєш яку саме треба знати добре.
P.S. Firefox (Gecko, а не SpiderMonkey) реалізує кусочок чорновика стандарту ECMAScript 6, починаючи з версії 15.0. Жоден інший браузер ще не підтягнувся.
Filed under: Кодерство, Павутина Tagged: JavaScript