Maison > interface Web > js tutoriel > le corps du texte

Partagez 12 questions d'entretien pour voir si vous comprenez JavaScript !

青灯夜游
Libérer: 2022-09-15 13:02:21
avant
1741 Les gens l'ont consulté

Connaissez-vous JavaScript ? L'article suivant partagera avec vous 12 questions d'entretien JavaScript. Essayez ces 12 questions d'entretien et voyez si vous pouvez y répondre correctement !

Partagez 12 questions d'entretien pour voir si vous comprenez JavaScript !

JavaScript est une technologie de base que tout développeur front-end devrait maîtriser, mais il arrive souvent que vous ne compreniez pas complètement JavaScript.

Il existe deux manières très simples de tester le niveau technique d'une personne, regarder le code qu'elle écrit, ou la laisser regarder le code écrit par d'autres.

J'ai résumé quelques questions de code qui peuvent tester votre compréhension de JavaScript. Vous pouvez l'essayer et voir si vous pouvez toutes répondre correctement. Si vous répondez correctement à toutes les questions, vous serez considéré comme connaissant JavaScript.

Première question

Essayez de deviner sa sortie :

const person = { name: '代码与野兽' }
Object.defineProperty(person, 'age', { value: 18 })

console.log(person.age)
console.log(Object.keys(person))
Copier après la connexion

Sortie :

18
['name']
Copier après la connexion

Analyse :
Beaucoup de gens se trompent facilement sur la deuxième sortie, car les propriétés définies à l'aide de DefineProperty ne sont pas énumérables par défaut. Levée .

Deuxième question

Essayez de deviner sa sortie :

const name = '代码与野兽'
age = 18

console.log(delete name)
console.log(delete age)
console.log(typeof age)
Copier après la connexion

Sortie :

false
true
"undefined"
Copier après la connexion

Analyse :
Le premier faux est que la suppression ne peut supprimer que les attributs de l'objet, et le nom n'est pas un attribut, donc la suppression a échoué.
La deuxième vérité est que nous n'utilisons aucune déclaration pour créer la variable. Elle sera considérée comme une variable globale et montée sur l'objet window, ce qui équivaut à delete window.age, donc la suppression est réussie.
Le troisième non défini est dû au fait que l'âge a été supprimé.

La troisième question

Essayez de deviner sa sortie :

let person = { name: '代码与野兽' }
const members = [person]
person = null
console.log(members)
Copier après la connexion

Sortie :

[{
  name: "代码与野兽"
}]
Copier après la connexion

Analyse :
Beaucoup de gens penseront que le résultat de sortie devrait être [null], mais nous venons de définir une personne this Une nouvelle référence à la variable, la référence précédente est toujours dans les membres.
En termes simples, { nom : 'Code and the Beast' } Cet objet existe dans un certain espace mémoire, en supposant que son adresse est X201. Sa logique ressemble à peu près à la suivante :

let person = X201
const members = [X201]
persion = null
Copier après la connexion

Question 4

Essayez de deviner sa sortie :

function SuperHero() {
  this.make = '代码与野兽'
  return { make: '野兽与代码'}
}

const mySuperhero = new SuperHero()
console.log(mySuperhero)
Copier après la connexion

Sortie :

{
  make: "野兽与代码"
}
Copier après la connexion

Analyse :
Si le constructeur renvoie finalement un objet, alors tout les propriétés définies précédemment ne seront pas valides.

Question 5

Essayez de deviner sa sortie :

const name = '代码与野兽'
console.log(name.padStart(14))
console.log(name.padStart(2))
Copier après la connexion

Sortie :

"         代码与野兽"
"代码与野兽"
Copier après la connexion

Explication :
La méthode padStart peut remplir des espaces au début de la chaîne.
Le paramètre est la longueur totale de la nouvelle chaîne. Si cette longueur est plus courte que la longueur de la chaîne d'origine, il n'y aura pas de remplissage.

Question 6

Essayez de deviner sa sortie :

console.log(parseInt("7"))
console.log(parseInt("7*6"))
console.log(parseInt("7Din"))
Copier après la connexion

Sortie :

7
7
7
Copier après la connexion

Parse :
Si les paramètres de parseInt sont une combinaison de chaînes et de nombres, alors il vérifiera du début jusqu'à Lorsqu'une position d'erreur de type de données est rencontrée, s'il y a un nombre valide avant la position d'erreur de type de données, elle renverra un nombre.

Question 7

Essayez de deviner sa sortie :

[1, 2, 3, 4].reduce((x, y) => console.log(x, y))
Copier après la connexion

Sortie :

1
2
undefined
3
undefined
4
Copier après la connexion

Analyse :
Si on ne passe pas une valeur initiale à réduire, alors x sera la première valeur du tableau , y est la deuxième valeur du tableau.

Question 8

Essayez de deviner sa sortie :

function getUserInfo(one, two, three) {
  console.log(one)
  console.log(two)
  console.log(three)
}

const superHero = '代码与野兽'
const age = 1000

getUserInfo`${superHero} 是 ${age} 岁`
getUserInfo`hello`
Copier après la connexion

Sortie :

["", " 是 ", " 岁"]
"代码与野兽"
1000
["hello"]
undefined
undefined
Copier après la connexion

Analyse :
Lorsque nous utilisons la syntaxe de chaîne de modèle pour appeler une fonction, le premier paramètre est toujours un tableau divisé de chaînes. Les paramètres restants sont les valeurs de l'expression du modèle.

Question 9

Essayez de deviner sa sortie :

(() => {
  let x, y;
  try {
    throw new Error()
  } catch (x) {
    (x = 1), (y = 2);
    console.log(x)
  }
  console.log(x)
  console.log(y)
})()
Copier après la connexion

Sortie :

1
undefined
2
Copier après la connexion

Analyse :
Lors de l'accès à x dans catch, on accède au paramètre, pas à la variable externe x.

Question 10

Essayez de deviner sa sortie :

class Clazz {}

console.log(typeof Clazz)
Copier après la connexion

Sortie :

"function"
Copier après la connexion

解析:
在 JavaScript 中,Class 也是 function。

第十一题

尝试推测它的输出:

const arr = [7, 1, 4, 3, 2];
for (const elem of arr) {
  setTimeout(() => console.log(elem), elem);
}
Copier après la connexion

输出:

1
2
3
4
7
Copier après la connexion

解析:
没什么好解释的......

第十二题

尝试推测它的输出:

const foo = { bar: 1 };
with(foo) {
  var bar = 2
};
console.log(foo.bar);
Copier après la connexion

输出:

2
Copier après la connexion

解析:

with 的对象会作为 global 对象。在 with 使用 var 等价于 window.[xxx]。而这时 foo 就是那个 window。

【相关推荐:javascript学习教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!