JavaScript を理解しているかどうかを確認するための、面接での 12 の質問を共有してください。

青灯夜游
リリース: 2022-09-15 13:02:21
転載
1743 人が閲覧しました

JavaScript を知っていますか?次の記事では、JavaScript の面接での 12 の質問を紹介します。これらの 12 の面接の質問を試して、すべて正しく答えられるかどうかを確認してください。

JavaScript を理解しているかどうかを確認するための、面接での 12 の質問を共有してください。

JavaScript は、すべてのフロントエンド開発者が習得すべき基本的なテクノロジですが、多くの場合、JavaScript を完全には理解していない可能性があります。

ある人の技術レベルをテストする非常に簡単な方法が 2 つあります。その人が書いたコードを確認するか、他の人が書いたコードを見てもらいます。

JavaScript の理解をテストできるコードの質問をいくつかまとめました。試してみて、すべての質問に正しく答えられるかどうかを確認してください。すべての質問に正しく答えると、JavaScript についてある程度の知識があるとみなされます。

最初の質問

出力を推測してみてください:

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

console.log(person.age)
console.log(Object.keys(person))
ログイン後にコピー

出力:

18
['name']
ログイン後にコピー

分析:
defineProperty を使用して定義されたプロパティはデフォルトでは列挙可能ではないため、多くの人は 2 番目の出力を簡単に間違えます。

2 番目の質問

出力を推測してみてください:

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

console.log(delete name)
console.log(delete age)
console.log(typeof age)
ログイン後にコピー

出力:

false
true
"undefined"
ログイン後にコピー

分析:
最初の false は、delete ではオブジェクトの属性のみを削除でき、name は属性ではないため、削除は失敗します。
2 番目の true は、変数の作成に宣言を使用していないためです。変数はグローバル変数とみなされ、window オブジェクトにマウントされます (delete window.age と同等であるため、削除は成功します)。
3 番目の未定義は、年齢が削除されたためです。

3 番目の質問

出力を推測してみてください:

let person = { name: '代码与野兽' }
const members = [person]
person = null
console.log(members)
ログイン後にコピー

出力:

[{
  name: "代码与野兽"
}]
ログイン後にコピー

分析:
多くの人は出力結果が [null] であるべきだと考えるでしょうが、ここでは person 変数への新しい参照を設定しただけで、以前の参照はメンバー内に残っています。
簡単に言うと、 { name: 'Code and Beast' } このオブジェクトは、アドレスが X201 であると仮定すると、特定のメモリ空間に存在します。そのロジックはおおよそ次のとおりです。

let person = X201
const members = [X201]
persion = null
ログイン後にコピー

質問 4

その内容を推測してみてください。出力:

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

const mySuperhero = new SuperHero()
console.log(mySuperhero)
ログイン後にコピー

出力:

{
  make: "野兽与代码"
}
ログイン後にコピー

解析:
コンストラクターが最終的にオブジェクトを返す場合、以前に設定されたプロパティはすべて無効になります。

質問 5

出力を推測してみてください:

const name = '代码与野兽'
console.log(name.padStart(14))
console.log(name.padStart(2))
ログイン後にコピー

出力:

"         代码与野兽"
"代码与野兽"
ログイン後にコピー

分析:
padStart メソッドは文字列の先頭にスペースを埋めることができます。
パラメータは新しい文字列の合計長です。この長さが元の文字列の長さより短い場合は埋められません。

質問 6

出力を推測してみてください:

console.log(parseInt("7"))
console.log(parseInt("7*6"))
console.log(parseInt("7Din"))
ログイン後にコピー

出力:

7
7
7
ログイン後にコピー

分析:
parseInt のパラメータが文字列と数値の組み合わせの場合、データ型エラーの位置に到達するまで最初からチェックします。データ型エラーが数値の場合は、数値が返されます。

質問 7

出力を推測してみてください:

[1, 2, 3, 4].reduce((x, y) => console.log(x, y))
ログイン後にコピー

出力:

1
2
undefined
3
undefined
4
ログイン後にコピー

分析:
reduce に初期値を渡さない場合、x が配列の最初の値になり、y が配列の 2 番目の値になります。

質問 8

出力を推測してみてください:

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

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

getUserInfo`${superHero} 是 ${age} 岁`
getUserInfo`hello`
ログイン後にコピー

出力:

["", " 是 ", " 岁"]
"代码与野兽"
1000
["hello"]
undefined
undefined
ログイン後にコピー

分析:
テンプレート文字列構文を使用して関数を呼び出す場合、最初のパラメーターは常に分割文字列配列になります。残りのパラメータはテンプレート式の値です。

質問 9

出力を推測してみてください:

(() => {
  let x, y;
  try {
    throw new Error()
  } catch (x) {
    (x = 1), (y = 2);
    console.log(x)
  }
  console.log(x)
  console.log(y)
})()
ログイン後にコピー

出力:

1
undefined
2
ログイン後にコピー

分析:
catch で x にアクセスすると、外部変数 x ではなくパラメーターがアクセスされます。

質問 10

出力を推測してみてください:

class Clazz {}

console.log(typeof Clazz)
ログイン後にコピー

出力:

"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学习教程

以上がJavaScript を理解しているかどうかを確認するための、面接での 12 の質問を共有してください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!