Искам да създам библиотека в JavaScript/JScript/ECMAScript...както и да я наречете, която ще е насочена към съвременните стандарти (HTML5, CSS3, ESv5) с това предвид, всеки браузър, който поддържа стандарта! Сега знам, че вече има много полезни библиотеки, т.е. jQuery и MooTools. Разбира се, те са страхотни и аз вече ги използвам, когато е необходимо, но не бива да бъда принуден да се хвърлям в същата банда като всеки друг разработчик, само защото е популярен!
Така че в името на следните въпроси, нека не се занимаваме с библиотеки на трети страни като jQuery и MooTools. Нека да преминем към детайлния JavaScript/JScript/ECMAScript.
Първо, зададох въпрос преди това (Каква е разликата между JavaScript, JScript и ECMAScript?), тъй като не знаех каква е разликата.
За щастие стигнах до следното заключение:
ECMAScript е езиковата спецификация. JavaScript и JScript са диалекти на ECMAScript.
JavaScript е внедряването на ECMAScript от Mozilla.
JScript е внедряването на ECMAScript от Microsoft.
Добре, това беше хубав прост отговор, нали? Но ето някои въпроси, които произтичат от това:
- поддържа ли се "JavaScript" в браузъри, различни от Mozilla, и до каква степен?
- поддържа ли се "JScript" в браузъри, различни от Microsoft, и до каква степен?
Въз основа на тези два въпроса направих малко копаене и проведох прост тест на IE9, FF14 и GC19.
Ето тестовия код:
<!DOCTYPE html>
<html>
<head>
<title>HTML 5 Template</title>
<script language="JavaScript1.3">
jsver = "1.3";
</script>
<script language="JavaScript1.4">
jsver = "1.4";
</script>
<script language="JavaScript1.5">
jsver = "1.5";
</script>
<script language="JavaScript1.6">
jsver = "1.6";
</script>
<script language="JavaScript1.7">
jsver = "1.7";
</script>
<script language="JavaScript1.8">
jsver = "1.8";
</script>
<script type="text/javascript">
document.write("<B>Your browser supports JavaScript version " + jsver + ".</B>")
</script>
</head>
<body>
</body>
</html>
Резултатите бяха: IE9 = JSv1.3, FF14 = JSv1.8, GC19 = JSv1.7
Добре, тогава проведох този тест, който тества за поддръжка на ECMAScript версия 5: http://kangax.github.com/es5-compat-table/#showold
Отново използвайки същите браузъри (IE9, FF14, GC19), ESv5 изглежда доста добре поддържан!
Сега идва сложното! Аз идвам от Microsoft и пиша софтуер, използвайки езици като C#, ASP.NET и т.н., така че естествено, моята IDE по избор е Visual Studio (в момента 2010). Когато преглеждам JavaScript intellisense, виждам неща като ActiveXObject, Array, Object и т.н.
- Трябва ли да се доверя на intellisense на VS2010?
- Къде мога да намеря справка за обекти и функции, поддържани от ESv5?
- Как да разбера дали даден браузър поддържа определен обект или функция?
- Има ли нещо по-добро от VS2010, което ще ми помогне да напиша съвместим ESv5 код?
- Безопасно ли е да се заменят реализации на съществуващи обекти като Object, Number, Boolean и т.н., или трябва просто да разширя съществуващата реализация?
И накрая, относно себе си с jQuery. Да кажем, че не мога да си правя труда да напиша сам основната съвместимост и функционалност, мога ли просто да напиша библиотеката си, за да седи върху jQuery... или това е просто copout?