Heim  >  Artikel  >  Web-Frontend  >  Teilen Sie 12 Interviewfragen, um zu sehen, ob Sie JavaScript beherrschen!

Teilen Sie 12 Interviewfragen, um zu sehen, ob Sie JavaScript beherrschen!

青灯夜游
青灯夜游nach vorne
2022-09-14 19:36:441756Durchsuche

Kennst du JavaScript? Der folgende Artikel stellt Ihnen 12 JavaScript-Interviewfragen vor. Probieren Sie diese 12 Interviewfragen aus und sehen Sie, ob Sie sie alle richtig beantworten können!

Teilen Sie 12 Interviewfragen, um zu sehen, ob Sie JavaScript beherrschen!

JavaScript ist eine grundlegende Technologie, die jeder Front-End-Entwickler beherrschen sollte, aber oft verstehen Sie JavaScript möglicherweise nicht vollständig.

Es gibt zwei sehr einfache Möglichkeiten, das technische Niveau einer Person zu testen: Schauen Sie sich den von ihr geschriebenen Code an oder lassen Sie sie sich den von anderen geschriebenen Code ansehen.

Ich habe einige Codefragen zusammengefasst, die Ihr Verständnis von JavaScript testen können. Sie können es ausprobieren und sehen, ob Sie sie alle richtig beantworten können. Wenn Sie alle Fragen richtig beantworten, wird davon ausgegangen, dass Sie über JavaScript-Kenntnisse verfügen.

Erste Frage

Versuchen Sie, die Ausgabe zu erraten:

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

console.log(person.age)
console.log(Object.keys(person))

Ausgabe:

18
['name']

Analyse:
Viele Leute verwechseln leicht die zweite Ausgabe, da die mit defineProperty definierten Eigenschaften standardmäßig nicht aufzählbar sind. Aufgehoben .

Zweite Frage

Versuchen Sie, die Ausgabe zu erraten:

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

console.log(delete name)
console.log(delete age)
console.log(typeof age)

Ausgabe:

false
true
"undefined"

Analyse:
Der erste Fehler liegt daran, dass durch Löschen nur Attribute auf dem Objekt gelöscht werden können und der Name kein Attribut ist. Daher ist das Löschen fehlgeschlagen.
Der zweite Grund liegt darin, dass wir zum Erstellen der Variablen keine Deklaration verwenden. Sie wird als globale Variable betrachtet und in das Fensterobjekt eingebunden, was dem Löschen von window.age entspricht, sodass das Löschen erfolgreich ist.
Die dritte Undefiniertheit liegt daran, dass das Alter gelöscht wurde. Die dritte Frage: Versuchen Sie die Ausgabe zu erraten:

let person = { name: '代码与野兽' }
const members = [person]
person = null
console.log(members)
Dies ist ein neuer Verweis auf die Variable. Der vorherige Verweis befindet sich noch in Mitgliedern. Einfach ausgedrückt: { Name: 'Code and the Beast' } Dieses Objekt existiert in einem bestimmten Speicherplatz, vorausgesetzt, seine Adresse ist X201. Seine Logik sieht ungefähr wie folgt aus:

[{
  name: "代码与野兽"
}]

Frage 4

Versuchen Sie, die Ausgabe zu erraten:

let person = X201
const members = [X201]
persion = null

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

const mySuperhero = new SuperHero()
console.log(mySuperhero)

Analyse: Wenn der Konstruktor schließlich ein Objekt zurückgibt, dann alle zuvor festgelegte Eigenschaften werden ungültig.

Frage 5

Versuchen Sie, die Ausgabe zu erraten:

{
  make: "野兽与代码"
}
Ausgabe:

const name = '代码与野兽'
console.log(name.padStart(14))
console.log(name.padStart(2))

Erklärung: Die Methode padStart kann Leerzeichen am Anfang der Zeichenfolge füllen. Der Parameter ist die Gesamtlänge der neuen Zeichenfolge. Wenn diese Länge kürzer als die ursprüngliche Zeichenfolgenlänge ist, erfolgt keine Auffüllung.

Frage 6

Versuchen Sie, die Ausgabe zu erraten:

"         代码与野兽"
"代码与野兽"

Ausgabe:

console.log(parseInt("7"))
console.log(parseInt("7*6"))
console.log(parseInt("7Din"))

Analyse: Wenn die Parameter von parseInt eine Kombination aus Zeichenfolgen und Zahlen sind, wird von Anfang an geprüft Wenn eine Datentypfehlerposition auftritt und vor der Datentypfehlerposition eine gültige Zahl vorhanden ist, wird eine Zahl zurückgegeben.

Frage 7

Versuchen Sie, die Ausgabe zu erraten:

7
7
7
Ausgabe:

[1, 2, 3, 4].reduce((x, y) => console.log(x, y))

Analyse: Wenn wir keinen Anfangswert zum Reduzieren übergeben, ist x der erste Wert des Arrays , y ist der zweite Wert des Arrays.

Frage 8

Versuchen Sie, die Ausgabe zu erraten:

1
2
undefined
3
undefined
4
Ausgabe:

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

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

getUserInfo`${superHero} 是 ${age} 岁`
getUserInfo`hello`

Analyse: Wenn wir die Vorlagenzeichenfolgensyntax verwenden, um eine Funktion aufzurufen, ist der erste Parameter immer ein geteiltes Array von Zeichenfolgen. Die restlichen Parameter sind die Werte des Vorlagenausdrucks.

Frage 9

Versuchen Sie, die Ausgabe zu erraten:

["", " 是 ", " 岁"]
"代码与野兽"
1000
["hello"]
undefined
undefined
Ausgabe:

(() => {
  let x, y;
  try {
    throw new Error()
  } catch (x) {
    (x = 1), (y = 2);
    console.log(x)
  }
  console.log(x)
  console.log(y)
})()

Analyse: Beim Zugriff auf x in Catch wird auf den Parameter zugegriffen, nicht auf die externe Variable x.

Frage 10

Versuchen Sie, die Ausgabe zu erraten:

1
undefined
2
Ausgabe:

"function"

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

第十一题

尝试推测它的输出:

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

输出:

1
2
3
4
7

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

第十二题

尝试推测它的输出:

const foo = { bar: 1 };
with(foo) {
  var bar = 2
};
console.log(foo.bar);

输出:

2

解析:

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

【相关推荐:javascript学习教程

Das obige ist der detaillierte Inhalt vonTeilen Sie 12 Interviewfragen, um zu sehen, ob Sie JavaScript beherrschen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen