τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Οι συχνές ερωτήσεις σε συνεντεύξεις JS στο μπροστινό μέρος καλύπτουν πολλές πτυχές, συμπεριλαμβανομένης της βασικής σύνταξης, των δομών δεδομένων και των αλγορίθμων, των λειτουργιών DOM, του ασύγχρονου προγραμματισμού, της σπονδυλοποίησης, της χρήσης πλαισίου/βιβλιοθήκης κ.λπ. Ακολουθούν ορισμένες κοινές ερωτήσεις συνέντευξης JS στο front-end και η σύντομη ανάλυσή τους:
var
、let
、const
Ποιά είναι η διαφορά; Ποιο είναι το εύρος και ο κύκλος ζωής τους;i++
και++i
Ποιά είναι η διαφορά;break
καιcontinue
Πώς διαφέρει όταν χρησιμοποιείται σε βρόχο;push
、pop
、shift
、unshift
、splice
、slice
、join
、sort
Περίμενε)JSON.parse(JSON.stringify(obj))
, τελεστής spread, recursion και άλλες μέθοδοι)Promise.all
καιPromise.race
?import
/export
), και ποια είναι τα πλεονεκτήματά του;this
κανόνες κατάδειξης και απόδοση σε διαφορετικά σενάρια.Δείγματα ερωτήσεων: Εξηγήστε τον πρωτότυπο μηχανισμό αλυσίδας στο JavaScript.
αναλύω λέξη:
__proto__
Ιδιότητες (συνιστάται στο ES6Object.getPrototypeOf()
μέθοδος), αυτή η ιδιότητα δείχνει τον κατασκευαστή τηςprototype
Γνωρίσματα.Object.prototype
)。null
, υποδεικνύοντας ότι δεν υπάρχουν άλλα πρωτότυπα αντικείμενα προς αναζήτηση.1. Ποιοι είναι οι τύποι δεδομένων στο JavaScript; Ποια είναι η διαφορά μεταξύ τους;
απάντηση:
Υπάρχουν 8 τύποι δεδομένων στο JavaScript, συμπεριλαμβανομένων των βασικών τύπων δεδομένων (Primitive Types) και των τύπων δεδομένων αναφοράς (Reference Types).
Η κύρια διαφορά μεταξύ των πρωτόγονων τύπων δεδομένων και των τύπων δεδομένων αναφοράς είναι ο τρόπος με τον οποίο αποθηκεύονται και εκχωρούνται. Οι τιμές των βασικών τύπων δεδομένων αποθηκεύονται στη μνήμη στοίβας και οι τιμές αντιγράφονται απευθείας κατά την εκχώρηση, ενώ οι τιμές των τύπων δεδομένων αναφοράς αποθηκεύονται στη μνήμη του σωρού και η μνήμη στοίβας αποθηκεύει αναφορές (δηλαδή διευθύνσεις) στις τιμές. στη μνήμη σωρού, τα οποία αντιγράφονται κατά την ανάθεση είναι μια αναφορά.
2. Μιλήστε για το εύρος και το κλείσιμο σε JavaScript;
απάντηση:
Πεδίο εφαρμογής : αναφέρεται στο έγκυρο εύρος αναγνωριστικών, όπως μεταβλητές και συναρτήσεις στο μπλοκ κώδικα. Το JavaScript έχει κυρίως δύο πεδία: καθολικό εύρος και τοπικό εύρος (συμπεριλαμβανομένου του εύρους λειτουργίας, του εύρους σε επίπεδο μπλοκ, κ.λπ.). Οι μεταβλητές στο καθολικό εύρος είναι ορατές σε όλο το σενάριο, ενώ οι μεταβλητές στο τοπικό εύρος μπορούν να προσπελαστούν μόνο μέσα στο μπλοκ κώδικα στο οποίο έχει οριστεί.
Κλείσιμο : σημαίνει ότι μια συνάρτηση θυμάται και έχει πρόσβαση στο λεξικό της πεδίο, ακόμα κι αν η συνάρτηση εκτελείται εκτός του λεξικού της πεδίου. Οι κύριες χρήσεις των κλεισίματος είναι η ενθυλάκωση ιδιωτικών μεταβλητών, η δημιουργία μονάδων κ.λπ. Τα κλεισίματα επιτρέπουν στις συναρτήσεις να έχουν πρόσβαση και να χειρίζονται μεταβλητές εκτός της συνάρτησης και αυτές οι μεταβλητές δεν μολύνονται ή αλλάζουν εύκολα ακόμη και εκτός της συνάρτησης.
3. Εξηγήστε τον ασύγχρονο προγραμματισμό και το Promise σε JavaScript;
απάντηση:
Ασύγχρονος προγραμματισμός : σημαίνει ότι η σειρά εκτέλεσης του κώδικα δεν βασίζεται στη σειρά εγγραφής, αλλά καθορίζεται με βάση την ολοκλήρωση ορισμένων συνθηκών (όπως αιτήματα δικτύου, ανάγνωση και εγγραφή αρχείων κ.λπ.). Η JavaScript είναι μονού νήματος, αλλά υλοποιεί ασύγχρονο προγραμματισμό μέσω βρόχων συμβάντων και συναρτήσεων επανάκλησης.
Υπόσχεση : είναι ένα νέο αντικείμενο που εισήχθη στο ES6, που χρησιμοποιείται για τον χειρισμό ασύγχρονων λειτουργιών. Ένα αντικείμενο Promise αντιπροσωπεύει μια λειτουργία που μπορεί να μην ολοκληρωθεί τώρα, αλλά θα ολοκληρωθεί (ή αποτύχει) στο μέλλον και την τιμή αποτελέσματός της. Η υπόσχεση έχει τρεις καταστάσεις: σε εκκρεμότητα (σε εξέλιξη), εκπληρώθηκε (επιτυχής) και απορρίφθηκε (αποτυχία). Μέσω του Promise, μπορούμε να γράψουμε ασύγχρονο κώδικα με σύγχρονο τρόπο, καθιστώντας τον κώδικα πιο συνοπτικό, ευκολότερο να κατανοηθεί και να διατηρηθεί.
4. Μιλήστε για τη δημιουργία φυσαλίδων συμβάντων και τη λήψη συμβάντων σε JavaScript;
απάντηση:
Φούσκα εκδήλωσης : σημαίνει ότι το συμβάν ξεκινά από το στοιχείο προορισμού και στη συνέχεια διαδίδεται μέχρι το ανώτερο επίπεδο του δέντρου DOM (δηλαδή, το αντικείμενο του εγγράφου). Κατά τη διαδικασία δημιουργίας φυσαλίδων συμβάντος, οποιοδήποτε επίπεδο στοιχείων DOM μπορεί να καταγράψει το συμβάν και να το επεξεργαστεί.
καταγραφή γεγονότος : Σε αντίθεση με τη δημιουργία φυσαλίδων συμβάντων, η καταγραφή συμβάντων ξεκινά στην κορυφή του δέντρου DOM και στη συνέχεια διαδίδεται μέχρι το στοιχείο προορισμού. Κατά τη διαδικασία λήψης συμβάντος, οποιοδήποτε επίπεδο στοιχείων DOM μπορεί να καταγράψει το συμβάν και να το επεξεργαστεί.
Στο JavaScript, μπορείτε να ορίσετε τη μέθοδο επεξεργασίας συμβάντων μέσω της τρίτης παραμέτρου της μεθόδου addEventListener, δηλαδή να χρησιμοποιήσετε τη δημιουργία φυσαλίδων συμβάντων ή τη λήψη συμβάντων. Εάν η τρίτη παράμετρος είναι αληθής, σημαίνει ότι χρησιμοποιείται καταγραφή γεγονότος, εάν είναι ψευδής ή παραλείπεται, σημαίνει ότι χρησιμοποιείται φυσαλίδες συμβάντος.
5. Ποιες νέες δυνατότητες εισάγονται στο ES6+;
απάντηση:
Πολλές νέες δυνατότητες έχουν εισαχθεί στο ES6 (ECMAScript 2015) και στις επόμενες εκδόσεις, συμπεριλαμβανομένων, ενδεικτικά, των εξής: