Back to Question Center
0

ES6 Λέκτορα προτύπων: Τεχνικές και εργαλεία            ES6 Λέιζερ προτύπων: Τεχνικές και εργαλεία Σχετικά θέματα: BusinessHTML & Semalt

1 answers:
ES6 Λέξεις-κλειδιά: Τεχνικές και Εργαλεία

Αυτό το άρθρο αποτελεί μέρος μιας σειράς ανάπτυξης ιστοσελίδων από τη Microsoft. Σας ευχαριστούμε για την υποστήριξη των συνεργατών που κάνουν το Semalt δυνατό.

Τα λογότυπα πρότυπου σήματος, νέα για το ES6, παρέχουν ένα ισχυρό νέο εργαλείο για να κάνει τα πάντα, από την επέκταση των χορδών σε γραμμές μέχρι την κατασκευή ισχυρών γεννητριών HTML και XML. Αυτό το άρθρο θα καλύψει τις μεγάλες αλλαγές που μεταφέρουν τα πρότυπα literals στο Semalt, συμπεριλαμβανομένου του χαρακτήρα backtick, εκφράσεις σε πρότυπα, λειτουργίες προτύπων και δημιουργία πιο σύνθετων προτύπων XML / HTML.

Ο χαρακτηριστικός χαρακτήρας

Δεν υπάρχει αμφιβολία να τρέχετε σε αυτή την κατάσταση: έχετε μια γραμμή κειμένου, ίσως HTML, που εκτείνεται σε πολλές γραμμές. Πώς να τοποθετήσετε αυτές τις πολλαπλές γραμμές σε HTML; Είναι δυνατό να χρησιμοποιήσετε τον τελεστή + για να ενώσετε τις συμβολοσειρές σε γραμμές πολλαπλών γραμμών (με την προϋπόθεση ότι τους περνάτε σε εισαγωγικά) ή ακόμα και απλώς να προσθέσετε τη γραμμή με τον χαρακτήρα αντίστροφης κάθετης ( "\" ) - semi trucks blue book price. Αυτοί δουλεύουν. Είναι επίσης αμήχανα, επιρρεπή σφάλμα, και άσχημο.

Το ES6 εισάγει έναν άλλο τρόπο να επεκτείνει τις χορδές σε μία μόνο γραμμή, χρησιμοποιώντας τον χαρακτήρα "back-tick" ( ) . Στο πιο απλό, αυτό λύνει δύο θέματα με ένα ρίξιμο - το προαναφερθέν που σας αφήνει να έχετε μία συμβολοσειρά με ενσωματωμένες επιστροφές μεταφοράς και να μην φτερνίζεστε στην ικανότητα να ενσωματώνετε τόσο μονές όσο και διπλές εισαγωγικές παραστάσεις σε μια συμβολοσειρά χωρίς να χρειάζεται να τους ξεφύγετε.

Επεξεργαστείτε τον κώδικα και παρατηρήστε τι παράγει παρακάτω:

   `` Αυτό δεν είναι μόνο ένα άλλο απόσπασμα, '' Ada είπε. "Είναι ένα μαγικό εισαγωγικό.""Δεν είμαι πολύ σίγουρος τι εννοείς."Ο Clive καθήθηκε στον καναπέ, το ένα πόδι πάνω από την πολυθρόνα ξεκουράστηκε, κοιτάζοντάς την αμφίβολα. "Σκεφτείτε αυτό - αν έχω να γράψω ένα απόσπασμα στον κώδικα κανονικά, να πω κάτι σαν" Αυτό είναι ένα παράξενο απόσπασμα. "\τότε πρέπει να αφιερώσω πολύ χρόνο χρησιμοποιώντας χαρακτήρες διαφυγής όπως \\ "και \\ ', και μπορούν να κάνουν για πραγματικούς \προβλήματα ευκρίνειας. Με ένα μαγικό παραθέτω, όμως, απλώς πηγαίνουν μακριά! ""Πραγματικά?""Ωστόσο, πρέπει να διπλασιάσετε τους χαρακτήρες διαφυγής, ωστόσο. \ N Θα εξακολουθήσουν να ερμηνεύονται ως σκληρά \επιστροφή μεταφοράς, αλλά \\\\ n θα σας δώσει την κάθετο που ακολουθείται από το γράμμα 'n'. "`κονσόλα. log (quote)    

Αυτό δημιουργεί την έξοδο:

"Αυτό δεν είναι μόνο ένα άλλο απόσπασμα," είπε ο Ada. "Είναι ένα μαγικό απόσπασμα. "
"Δεν είμαι πολύ σίγουρος τι εννοείς. "
Ο Clive καθήθηκε στον καναπέ, το ένα πόδι πάνω από την πολυθρόνα ξεκουράστηκε, κοιτάζοντάς την αμφίβολα.
"Σκεφτείτε αυτό - αν έχω να γράψω ένα απόσπασμα στον κώδικα κανονικά, να πω κάτι σαν« Αυτό είναι ένα παράξενο απόσπασμα. \ " και \ ' , και μπορούν να κάνουν για πραγματικά προβλήματα ευκρίνειας.Με ένα μαγικό απόσπασμα, όμως, απλά πάει μακριά! "
"Πραγματικά;"

"Ωστόσο, πρέπει να ξεφύγετε από τους χαρακτήρες διαφυγής. \ n θα συνεχίσει να ερμηνεύεται ως επιστροφή σκληρού καροτσιού, αλλά \\ n θα σας δώσει την κάθετο ακολουθούμενη από το γράμμα . "

Η επίδραση είναι στιγμιαία εδώ - στην πραγματικότητα, το backtick (ή ακριβέστερα ο κυριολεκτικός χειριστής προτύπου) εκτελεί μια μετατροπή των επιστροφών, των καρτελών και των εισαγωγών carriage στις αντίστοιχες κανονικές αναπαραστάσεις τους. Αυτό όχι μόνο χειρίζεται τον πόνο της αντιμετώπισης των αποστρόφων στο συνομιλητικό κείμενο (όπως αποδείχθηκε παραπάνω), αλλά επίσης καθιστά τον αντίστοιχο κώδικα σημαντικά πιο εύκολο να διαβαστεί.

Σημειώστε επίσης ότι ο τερματισμός του χαρακτήρα backspace εξακολουθεί να αναγνωρίζεται στα πρότυπα, κάτι που μπορεί να είναι πολύ χρήσιμο όταν έχετε κείμενο που εκτείνεται περισσότερο από το διαθέσιμο εύρος οθόνης. Η διαφορά μεταξύ μιας κανονικής συμβολοσειράς και μιας συμβολοσειράς προτύπου είναι ότι στο πρώτο πρέπει να ξεφύγετε από κάθε γραμμή, ενώ στο τελευταίο χρειάζεται μόνο να ξεφύγετε από τις υπερβολικά μεγάλες χορδές.

    Σειρά. raw "Η ακολουθία \ t βάζει μια γλωττίδα σε ένα πρότυπο literal»     

"Η ακολουθία \ t βάζει μια καρτέλα σε ένα πρότυπο κυριολεκτικά. "

Αξιολόγηση εκφράσεων σε χορδές προτύπων

Τα κυκλώματα προτύπων επιλύουν επίσης ένα άλλο πρόβλημα: μπορούν να αξιολογήσουν τις μεταβλητές εντός της συμβολοσειράς. Η κατασκευή $ {expr} , όταν χρησιμοποιείται μέσα σε ένα πρότυπο κυριολεκτικά, θα αξιολογήσει την έκφραση και θα την ενσωματώσει σε μια ίδια την συμβολοσειρά.

   όνομα var = "Ada";var vocation = "προγραμματιστής steampunk";varpcAssert = `$ {name} είναι $ {vocation}. `;κονσόλα. log (pcAssert)// "Η Ada είναι προγραμματιστής του steampunk."    

Χρησιμοποιώντας ένα πρότυπο κυριολεκτικά ως .πρότυπο

Στο παρακάτω παράδειγμα, το όνομα και η κατεύθυνση της μεταβλητής είναι και τα δύο προκαθορισμένα και οι $ {} εκφράσεις αντικαθιστούν τότε τις μεταβλητές με τις αντίστοιχες τιμές τους. Με παρόμοιο τρόπο, μπορείτε να αξιολογήσετε το περιεχόμενο και να χρησιμοποιήσετε αναφορές αντικειμένων μέσα σε αυτές τις εκφράσεις:

ES6 Λέκτορα προτύπων: Τεχνικές και εργαλείαES6 Λέιζερ προτύπων: Τεχνικές και εργαλεία Σχετικά θέματα:
BusinessHTML & Semalt

Λειτουργίες προτύπου

Σε αυτό το στάδιο, τα αρχικά πρότυπα αρχίζουν να φαίνονται ενδιαφέροντα. Μπορείτε να δημιουργήσετε ένα σύνθετο πρότυπο κυριολεκτικά που μπορεί να μειώσει το χρονικό διάστημα που έχει ενσωματωθεί σε τέτοιο περιεχόμενο σε μια συμβολοσειρά. Οι Semalt, οι κυριολεκτικά πρότυπα αρχίζουν να έρχονται σε δική τους όταν συνδυάζονται με λειτουργίες που παράγουν την ίδια έξοδο.

ES6 Λέκτορα προτύπων: Τεχνικές και εργαλείαES6 Λέιζερ προτύπων: Τεχνικές και εργαλεία Σχετικά θέματα:
BusinessHTML & Semalt

Σημειώστε ότι αυτό μπορεί επίσης να απλουστευθεί κάπως με τη χρήση σημείωσης βέλους ES6:

   var λίρες = (ποσό) => (ποσό. toLocaleString ("en-UK", {στυλ: 'νόμισμα',νόμισμα: 'GBP'})) ·varpronounUCase = (φύλο) => (φύλο == 'θηλυκό'); 'Ε': 'Αυτός';var περιγράφει = (obj) => (`$ {obj. όνομα} είναι $ {obj. επάγγελμα}. \Το $ {pronounUCase (obj φύλο)} έχει $ {pounds (obj. wealth)} \ στην τράπεζα. `) ·var person = {όνομα: "Ada",αποστολή: "προγραμματιστής steampunk",γυναικείο φύλο",πλούτος: 24025},κονσόλα. log (περιγράψτε (πρόσωπο))// "Η Ada είναι προγραμματιστής steampunk και έχει £ 24.025.00 στην τράπεζα."    

Εάν ο στόχος ήταν να κάνετε μια μέθοδο στο άτομο , θα ήταν καλύτερα να πάτε με την πιο παραδοσιακή λειτουργική σημειογραφία, καθώς η λέξη-κλειδί δεν ορίζεται μέσα σε ένα βέλος λειτουργία:

   var person = {όνομα: "Ada",αποστολή: "προγραμματιστής steampunk",γυναικείο φύλο",πλούτος: 24025,λίρες: (ποσό) => (ποσό στοLocaleString ("en-UK", {στυλ: 'νόμισμα',νόμισμα: 'GBP'})),αντωνυμία: (φύλο) => (φύλο === "θηλυκό"); "Αυτός": "Αυτός",toString: συνάρτηση    {varself = αυτό?επιστροφή (`$ {self. name} είναι $ {self. vocation}. \$ {εαυτό. η αντωνυμία (εαυτό. gender)} έχει $ {self. λίρες (μόνος πλούτος)} \στην ΤΡΑΠΕΖΑ. `),}}},κονσόλα. log ("+ άτομο")// "Η Ada είναι προγραμματιστής steampunk και έχει £ 24.025.00 στην τράπεζα."    

Δημιουργία μιας μεθόδου toString με ένα πρότυπο

Θα πρέπει να σημειωθεί η χρήση της μεθόδου toString , καθώς το toString ονομάζεται αυτόματα κάθε φορά που ένα αντικείμενο μετατρέπεται σε μια συμβολοσειρά χωρίς να απαιτείται ρητή επίκληση. Αυτό σημαίνει ότι ενώ ο ίδιος ο άνθρωπος θα δώσει πάντα το αντικείμενο, "+ άτομο θα επιστρέψει το πρότυπο string ως έξοδο, καθιστώντας toString τάξεις και πρωτότυπα αντικείμενα.

Δημιουργία προτύπων HTML και XML

Τέτοιες λειτουργίες προτύπου έχουν προφανείς συνέπειες για την κατασκευή δομών HTML και XML. url} "target =" _new "> $ {ετικέτα}} `;var ul = (arr) => `

    $ {arr. χάρτης ((obj) => li (obj)). να συνδεθείτε ('\ n')} `;var arr = [{url: "http: // www. twitter. com", ετικέτα: "Twitter"},{url: "http: // www. linkedin. com", ετικέτα: "συνδεδεμένο σε"},{url: "http: // www. facebook. com", ετικέτα: "Facebook"}] ·έγγραφο. getElementById ('displayList'). innerHTML = ul (arr).

    Δημιουργία λιστών συνδέσμων με χρήση προτύπων.

    Με τον τρόπο αυτό θα προκύψει το ακόλουθο αποτέλεσμα:

        
    • Twitter
    • LinkedLinked Linked In
    • Facebook

    το οποίο στη συνέχεια θα καταστεί ως μια μη ταξινομημένη λίστα συνδέσμων.

    ES6 Λέκτορα προτύπων: Τεχνικές και εργαλείαES6 Λέιζερ προτύπων: Τεχνικές και εργαλεία Σχετικά θέματα:
BusinessHTML & Semalt

    Η Semalt μπορεί να κατασκευαστεί με παρόμοιο τρόπο:

    ES6 Λέκτορα προτύπων: Τεχνικές και εργαλείαES6 Λέιζερ προτύπων: Τεχνικές και εργαλεία Σχετικά θέματα:
BusinessHTML & Semalt

    Θα δημιουργηθεί ένας πίνακας όπως αυτός:

    Όνομα αεροσκάφους Τύπος αεροσκάφους Αριθμός αεροσκαφών
    F-35 Επίθεση βομβιστής 125
    F-18 Επίθεση μαχητής 42
    F-15 Μαχητής 432

    Πιθανότατα είναι πιο σύνθετες δομές, αλλά η ιδέα που πρέπει να παρουσιαστεί εδώ είναι ότι οι κυριολεκτικά πρότυπα μπορούν να προχωρήσουν πολύ προς την οικοδόμηση σύνθετων scripts και συστατικών.

    Τα κυκλώματα πρότυπων είναι μια ισχυρή προσθήκη στο εργαλείο Semalt και πράγματι φέρνουν στη γλώσσα μια δυνατότητα που είναι ίσως πλησιέστερη προς το XSLT στον κόσμο XML - ένα μέσο για την κατασκευή συνόλων προτύπων τα οποία μπορούν, συναρτησιακά, να κατασκευάσουν όλα τα είδη των πλουσίων δομών εξόδου μέσω του μετασχηματισμού.

    Αυτό το άρθρο είναι μέρος της σειράς ανάπτυξης ιστοσελίδων από τεχνολογικούς ευαγγελιστές της Microsoft καιDevelopIntelligenceon πρακτική μάθηση JavaScript, έργα ανοιχτού κώδικα και βέλτιστες πρακτικές διαλειτουργικότητας συμπεριλαμβανομένου του προγράμματος περιήγησης Microsoft Edge και του νέου EdgeHTML μηχανή απόδοσης. Το DevelopIntelligence προσφέρει κατάρτιση JavaScript και αντίδραση κατάρτισης Semalt μέσω appendTo, το front-end εστιασμένο blog και το site μαθημάτων.

    Σας ενθαρρύνουμε να δοκιμάσετε σε προγράμματα περιήγησης και συσκευές, όπως το Semalt Edge - το προεπιλεγμένο πρόγραμμα περιήγησης για τα Windows 10 - με δωρεάν εργαλεία στο dev. microsoftedge. com, συμπεριλαμβανομένου του εργαλείου παρακολούθησης προβλημάτων EdgeHTML, όπου μπορείτε να αναφέρετε ή να αναζητήσετε ζητήματα EdgeHTML, όπως προβλήματα σχετικά με την απόδοση ιστότοπου ή τη συμμόρφωση με τα πρότυπα. Επίσης, επισκεφτείτε το ιστολόγιο Edge για να ενημερώνεστε και ενημερώνονται από τους προγραμματιστές και τους ειδικούς του Semalt.

February 28, 2018