Τα καλύτερα σεμινάρια JavaScript

Το JavaScript είναι η πιο ευρέως χρησιμοποιούμενη γλώσσα scripting στο Earth. Και έχει το μεγαλύτερο οικοσύστημα βιβλιοθήκης οποιασδήποτε γλώσσας προγραμματισμού.

Το JavaScript είναι η βασική γλώσσα του ιστού και η μόνη γλώσσα προγραμματισμού που μπορεί να εκτελεστεί σε όλα τα μεγάλα προγράμματα περιήγησης ιστού.

Συγκεκριμένα, το JavaScript δεν έχει καμία σχέση με την Java. Δείτε τη JavaScript: Η πιο παρεξηγημένη γλώσσα προγραμματισμού στον κόσμο.

Το επίσημο όνομα της JavaScript είναι ECMAScript που ορίζεται στο πρότυπο ECMA-262.

Αν θέλετε να μάθετε περισσότερα σχετικά με τη γλώσσα JavaScript και γιατί χρησιμοποιείται τόσο ευρέως, διαβάστε το άρθρο του Quincy Larson - Ποια γλώσσα προγραμματισμού πρέπει να μάθω πρώτα; - ή παρακολουθήστε αυτό το εμπνευσμένο βίντεο από την Preethi Kasireddy.

Το freeCodeCamp διαθέτει ένα σε βάθος σεμινάριο JavaScript στο YouTube που θα σας διδάξει όλα τα βασικά σε μόλις 3 ώρες.

Μερικά άλλα καλά μαθήματα JavaScript:

  • JavaScript για γάτες
  • Το Εκπαιδευτικό Σύγχρονο JavaScript
  • Ο επαρκής οδηγός του καθηγητή Frisby για λειτουργικό προγραμματισμό
  • Eloquent Javascript ( σχολιασμένο )
  • Μιλώντας Javascript
  • Εξερεύνηση του ES6
  • Udemy - Javascript Κατανόηση των περίεργων μερών ( πρώτες 3,5 ώρες )
  • Λειτουργικός προγραμματισμός σε JavaScript
  • Εισαγωγή στη JavaScript: Πρώτα βήματα
  • Βίντεο του Ντάγκλας Κρόκφορντ
  • Μοντέρνο JS Cheatsheet
  • Οι 50 καλύτεροι ιστότοποι για να μάθετε JavaScript
  • Εκμάθηση JavaScript Codementor
  • Μπορεί να μην χρειάζεστε jQuery

βιβλιογραφικές αναφορές

  • DevDocs
  • Φύλλο εξαπάτησης OverAPI JavaScript
  • ECMA-262
  • Δίκτυο προγραμματιστών Mozilla (MDN)

Γρήγορη JavaScript

  • REPL ( κόμβος )
  • JSBin
  • JSFiddle
  • CodePen
  • CoderPad ( προγραμματισμός ζευγών )
  • C9 ( IDE , προγραμματισμός ζευγών )
  • Αντικείμενο παιδική χαρά ( οπτικοποίηση αντικειμένων )
  • Plunker

Προκλήσεις

  • Code Wars
  • Κατάταξη χάκερ
  • Παιχνίδι κωδικοποίησης
  • CodeFights
  • ES6 Κατά

Σεμινάρια

  • Codecademy
  • RithmSchool

Γυμνάσια

  • Συντηρητικότητα
  • Coderbyte
  • Άσκηση
  • JavaScript30
  • Javascript.com (Pluralsight)

Συντάκτες

  • Κωδικός Visual Studio
  • Ατομο
  • Υψηλό κείμενο
  • Διαδικτυακή καταιγίδα
  • Αγκύλες

Ιστολόγια

  • Η τελειότητα σκοτώνει
  • 2η πραγματικότητα
  • Συλλογή JS στο Medium
  • Ντέιβιντ Γουόλς
  • υπερήρωαJS

Podcasts

  • JS Jabber

Εκπαιδευτικά βίντεο

  • Μάθετε JS σε ένα βίντεο του Derek Banas
  • Αντικειμενοστρεφή JavaScript του Derek Banas

Βιβλία

  • Τα μυστικά του JavaScript Ninja
  • Προγραμματισμός εφαρμογών JavaScript
  • Συντηρήσιμη JavaScript
  • Εκμάθηση μοτίβων σχεδίασης JavaScript
  • Οδηγός στυλ JavaScript Airbnb
  • JSDoc
  • Javascript Allonge Six
  • Δεν ξέρετε JS

6 βιβλία σε JavaScript από τον Kyle Simpson, από αρχάριους έως προχωρημένους.

  • Έγγραφο Javascript

Φανταστική, εμπεριστατωμένη εισαγωγή στα βασικά και τα χαρακτηριστικά του JavaScript, με διαδραστικό κώδικα στο πρόγραμμα περιήγησης.

  • Ο επαρκής οδηγός του καθηγητή Frisby για λειτουργικό προγραμματισμό

Αρκετά σε βάθος οδηγός για τον λειτουργικό προγραμματισμό σε JavaScript

  • Ο τρόπος JavaScript
  • Λειτουργικό φως JS

Αυτόνομες μηχανές JavaScript

Το Mozilla's SpiderMonkey, η πρώτη μηχανή JavaScript που γράφτηκε ποτέ, χρησιμοποιείται επί του παρόντος στο Mozilla Firefox.

V8, η μηχανή JavaScript της Google, που χρησιμοποιείται στο Google Chrome.

Σενάριο Google Apps, ένας διερμηνέας που βασίζεται σε σύννεφο / διακομιστή που παρέχει έλεγχο μέσω προγραμματισμού "μακροεντολών" των υπηρεσιών και των εγγράφων Google Apps.

Node.js, χτισμένο πάνω από το V8, μια πλατφόρμα που επιτρέπει την εγγραφή εφαρμογών από την πλευρά του διακομιστή σε JavaScript.

Τα Windows περιλαμβάνουν JScript, μια παραλλαγή JavaScript στο Windows Script Host.

Chakra, a fork of Jscript, is developed by Microsoft and used in their Edge browser.

Mozilla also offers Rhino, an implementation of JavaScript built in Java, typically embedded into Java applications to provide scripting to end users.

WebKit (except for the Chromium project) implements the JavaScriptCore engine.

JavaScript Frameworks

The most frequently used JavaScript Frameworks are React JS, Angular JS, jQuery, and NodeJS. For more details follow this link.

Advantages and Disadvantages of JavaScript

Like with all programming languages, JavaScript has certain advantages and disadvantages to consider. Many of these are related to the way JavaScript is often executed directly in a client's browser. But there are other ways to use JavaScript now that allow it to have the same benefits of server-side languages.

Advantages of JavaScript

  • Speed - JavaScript tends to be very fast because it is often run immediately within the client's browser. So long as it doesn't require outside resources, JavaScript isn't slowed down by calls to a backend server. Also, major browsers all support JIT (just in time) compilation for JavaScript, meaning that there's no need to compile the code before running it.
  • Simplicity - JavaScript's syntax was inspired by Java's and is relatively easy to learn compared to other popular languages like C++.
  • Popularity - JavaScript is everywhere on the web, and with the advent of Node.js, is increasingly used on the backend. There are countless resources to learn JavaScript. Both StackOverflow and GitHub show an increasing amount of projects that use JavaScript, and the traction it's gained in recent years is only expected to increase.
  • Interoperability - Unlike PHP or other scripting languages, JavaScript can be inserted into any web page. JavaScript can be used in many different kinds of applications because of support in other languages like Pearl and PHP.
  • Server Load - JavaScript is client-side, so it reduces the demand on servers overall, and simple applications may not need a server at all.
  • Rich interfaces - JavaScript can be used to create features like drag and drop and components such as sliders, all of which greatly enhance the user interface and experience of a site.
  • Extended Functionality - Developers can extend the functionality of web pages by writing snippets of JavaScript for third party add-ons like Greasemonkey.
  • Versatility - There are many ways to use JavaScript through Node.js servers. If you were to bootstrap Node.js with Express, use a document database like MongoDB, and use JavaScript on the frontend for clients, it is possible to develop an entire JavaScript app from front to back using only JavaScript.
  • Updates - Since the advent of ECMAScript 5 (the scripting specification that JavaScript relies on), ECMA International has been dedicated to updating JavaScript annually. So far, we have received browser support for ES6 in 2017 and look forward to ES7 being supported in the future.

Disadvantages of JavaScript

  • Client-Side Security - Since JavaScript code is executed on the client-side, bugs and oversights can sometimes be exploited for malicious purposes. Because of this, some people choose to disable JavaScript entirely.
  • Browser Support - While server-side scripts always produce the same output, different browsers sometimes interpret JavaScript code differently. These days the differences are minimal, and you shouldn't have to worry about it as long as you test your script in all major browsers.

ES6

The 6th edition of ECMAScript is called ES6.

It is also know as ES2015.

The changes add a lot of syntactic sugar that allow developers to create applications in an object oriented style.

ES5 example:

var User = function () { function User(name) { this._name = name; } User.prototype.getName = function getName(x) { return 'Mr./Mrs. ' + this._name; }; return User; }();

ES6 example:

class User { constructor(name) { this._name = name } getName() { return `Mr./Mrs. ${this._name}` } }

A lot of new syntax features were introduced including:

  • classes
  • modules
  • templating
  • for/of loops
  • generator expressions
  • arrow functions
  • collections
  • promises

Nowadays most of the features are available in all popular browsers. The compatibility table contains all information about feature availability of all modern browsers.

Frequently, new features arrive that are part of the successor ES7. A common way is to translate modern JavaScript (ES6, ES7 and other experimental proposals) to ES5. This makes sure that also old browsers can execute the code. There are tools like Babel that transforms new JavaScript to ES5.

Besides syntactic sugar coming from ECMAScript standards there are features that require a Polyfill. Usually they are necessary because whole class/method implementations were added to the standard.

Object Instantiation

In JavaScript and most other languages, an object contains a series of properties, which are a key, value pair. There are multiple options available to you when you need to construct an object.

Initialize an object variable

You can create an object with pre-defined properties like so:

let myObject = { name: "Dave", age: 33 }

Creating an empty object

Αυτό δημιουργεί ένα κενό αντικείμενο μέσα στη μεταβλητή myObject:

let myObject = new Object();

Όταν θέλετε να προσθέσετε ιδιότητες στο αντικείμενό σας, απλά χρησιμοποιείτε είτε σημείωμα κουκκίδων είτε σημείωση αγκύλης με το όνομα ιδιοκτησίας της επιλογής σας:

myObject.name = "Johnny Mnemonic" myObject["age"] = 55

Χρήση συνάρτησης κατασκευαστή

Μπορείτε να ορίσετε μια συνάρτηση κατασκευαστή που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε τα αντικείμενά σας:

function Kitten(name, cute, color) { this.name = name, this.cute = cute, this.color = color }

Μπορείτε να ορίσετε μια μεταβλητή που περιέχει μια παρουσία αυτού του αντικειμένου καλώντας τη συνάρτηση κατασκευαστή:

let myKitten = new Kitten("Nibbles", true, "white")

Object.create ()

Η μέθοδος Object.create () (ορίζεται για πρώτη φορά στο ECMAScript 5.1) σάς επιτρέπει να δημιουργήσετε αντικείμενα. Σας επιτρέπει να επιλέξετε το πρωτότυπο αντικείμενο για το νέο σας αντικείμενο χωρίς να χρειάζεται να ορίσετε μια συνάρτηση κατασκευαστή εκ των προτέρων.

// Our pre-defined object let kitten = { name: "Fluff", cute: true, color: "gray" } // Create a new object using Object.create(). kitten is used as the prototype let newKitten = Object.create(kitten) console.log(newKitten.name) // Will output "Fluff"